MySQL не запускается!

12

Я получаю эту ошибку при попытке войти в MySQL из командной строки:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Я думаю, это означает, что MySQL еще не запущен. Итак, я пытаюсь начать это:

sudo /etc/init.d/mysql start

и я получаю это сообщение:

* Starting MySQL database server mysqld [fail] 

Где я могу посмотреть / что мне сделать, чтобы запустить MySQL? Я использую Ubuntu 8.04 и установил MySQL через apt-get. Я был в состоянии начать это и использовал это пару раз, таким образом я не знаю, почему это просто прекратило работать.

Обновление: при запуске статуса sudo /etc/init.d/mysql я получаю сообщение:

* MySQL is stopped.

Обновление № 2. Мои файлы журналов (/var/log/mysql.log & /var/log/mysql.err) пусты (если они правильные)

Андрей
источник
что происходит, когда вы sudo /etc/init.d/mysql статус
emgee

Ответы:

10

В Ubuntu 12.04 у меня была такая же проблема после изменения размеров буфера в файле /etc/mysql/my.cnf, думаю, я немного увлекся. В любом случае, после попытки вернуть их к настройкам по умолчанию MySQL все равно не запустится.

Я попробовал несколько разных способов, чтобы решить эту проблему, я заметил, что /var/run/mysql/mysql.sock отсутствует. Это может быть проблемой, поэтому вы можете проверить там, и если он отсутствует, вы можете заменить его, выполнив следующие действия:

sudo touch /var/run/mysql/mysql.sock
sudo chown mysql /var/run/mysql/mysql.sock

Это НЕ решило проблему для меня! Но это может для некоторых.

Мне нужно было полностью переустановить MySQL, для этого вам нужно будет использовать команду sudo. Шаги для полного удаления и переустановки MySQL следующие:

Удалить MySQL

sudo apt-get --purge remove mysql-server
sudo apt-get --purge remove mysql-client
sudo apt-get --purge remove mysql-common

При желании вы можете использовать aptitude, заменив apt-get --purge на aptitude

Очистить

sudo apt-get autoremove
sudo apt-get autoclean

Удалить каталог MySQL

sudo rm -rf /etc/mysql

Установите MySQL

sudo apt-get install mysql-server mysql-client

MySQL должен теперь работать, вы можете проверить это, выполнив следующее:

sudo service mysql status

Тебе следует увидеть

mysql start/running, process xxxxx

Надеюсь, что это поможет, и подумал, что я мог бы добавить после этого все мои базы данных и таблицы, где они еще доступны, однако мне пришлось воссоздать пользователей и пароли для этих баз данных.

Примечание. Если у вас есть расширение mysql для php, вам также потребуется переустановить его.

sudo apt-get install php5-mysql
Кайл Кутс
источник
Это сработало для меня, но я должен был изменить его на: sudo touch /var/run/mysqld/mysqld.sockи я узнал об этом с конца /var/log/syslog (например, изменение на mysqld)
Programster
Это /var/run/mysqldили /var/run/mysql?
CMCDragonkai
трогать файл sock - плохая идея - вы создали обычный файл, когда это действительно сокет, который представляет собой особый тип файла.
Кригги
3

ВНИМАНИЕ: это опасно, ваш mysql НЕ будет в безопасности, и любой сможет подключиться, отредактировать и т. Д. Ваши таблицы, не оставляйте сервер работающим с этой командой.

Попробуйте запустить его в безопасном режиме: /usr/local/mysql/bin/safe_mysqld --user=mysql --skip-grant-tables

Если это работает, то могут быть проблемы с вашей information_schema или вашими таблицами mysql. Если это не работает, значит что-то не так с вашей установкой.

lilott8
источник
1
Это хорошо, выдает подробные ошибки в системном журнале. Команда изменилась, на Ubuntu 12.04 этоsudo /usr/bin/mysqld_safe --user=mysql --skip-grant-tables
newz2000
3

Проверьте ваши файлы журнала, как в других ответах. Также проверьте, достаточно ли у вас (или свободного места на диске). MySQL может вести себя таким образом на пустом разделе.

df -h

Если это не так, ознакомьтесь с документацией MySQL по отладке сервера . Их myisamchk(если вы используете MyISAM) особенно полезно.

Эйдан Фицпатрик
источник
3

Я также недавно получил эту проблему после обновления Ubuntu. Еще не уверен, в чем именно проблема. Один worakround, который работал на данный момент, чтобы запустить MySQL, хотя должен был сделать:

sudo aa-complain /etc/apparmor.d/*mysql*

Это заставляет его работать, указывая, что apparmor остановил работу mysql, и объясняя, почему журналы, вероятно, тоже пусты: mysql не был разрешен к запуску.

Это остается странной проблемой, так как пока нет никаких «жалоб» на это /var/log/apparmor, и единственная запись аудита в kern.log - от изменения профиля до режима подачи жалоб.

Обратите внимание, что при этом я также добавил (пустой) /etc/apparmor.d/local/usr.sbin.mysqlфайл, поскольку команда aa-complain пожаловалась на то, что не нашла этот файл.

user143757
источник
Большое спасибо! После того, как я чуть не вырвал мои волосы, это, наконец, исправило их.
Олат
3

У меня была та же проблема с моей цифровой каплей объемом 512 МБ.

Оказалось, это связано с нехваткой памяти.

Непосредственным решением является перезапуск других служб для освобождения памяти, например.

sudo service apache2 restart

Тогда, надеюсь, с достаточным объемом памяти, вы сможете перезапустить MySQL

sudo service mysql restart

Долгосрочное решение - либо получить больше оперативной памяти, либо создать подкачку памяти .

samwize
источник
2

Посмотрите на ваши файлы журнала. По крайней мере, на Debian вы получаете mysql * вход в систему /var/log.

InnaM
источник
3
mysql.err и mysql.log оба пусты
Эндрю
1

Если бы эта же проблема, оказалось, решение смотрело мне в лицо. Диск был полон. Вы не получаете журналы, потому что нет, где их писать .....

boatcoder
источник
0

Та же проблема мучила меня целую вечность на Ubuntu 12.04 Digital Ocean VPS с mysql 5.6, установленным из PPA. Симптомами было то, что файл mysql.sock в /var/run/mysqld/mysql.sockмог быть удален, но никогда не воссоздан, поэтому мне приходилось вручную запускать следующие команды каждый раз, когда mysql обновлялся или сервер перезагружался:

sudo touch /var/run/mysqld/mysql.sock
sudo chown mysql /var/run/mysqld/mysql.sock

Это было из ответа Кайла Си (за исключением mysqld вместо mysql). В конце концов, я опустился до версии 5.5, которая приходит, когда вы обычно выполняете sudo apt-get install mysql-serverкоманду. Однако это было не так просто, вот что я должен был сделать:

# Manually get mysql running if it is not
sudo touch /var/run/mysqld/mysql.sock
sudo chown mysql /var/run/mysqld/mysql.sock
sudo service mysql start

# take a dump of all databases 
# we are going to remove the mysql files so don't skip this)
mysqldump -u root -p > all-databases.sql

# Completely remove mysql
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean

# Remove mysql 5.6 from debs (otherwise it will reinstall 5.6)
rm /etc/apt/sources.list.d/ondrej-(mysql something please check)

# remove a flag that would prevent the installation
# because it is seen as a downgrade
sudo rm /var/lib/mysql/debian-5.6.flag

# I had to remove the mysql files as well
# reference http://ubuntuforums.org/showthread.php?t=1998260&page=3
rm -rf /var/lib/mysql
rm -rf /etc/mysql*

# Install mysql
sudo apt-get install mysql-server mysql-client mysql-common php5-mysql

# manually update the all-databases.sql file and 
# remove all STATS_PERSISTENT clauses on table creation statments

# re import the databses
mysql -u root -p < all-databases.sql

# restart apache
sudo service apache2 restart

# at this point my wordpress site stated error connecting to database.
# This was resolved by logging into mysql and running:
FLUSH PRIVILEGES

Надеюсь, это поможет кому-то, кто испытывает такую ​​же боль.

Programster
источник
0

думаю, что это может помочь другим ... так что вот оно.

Я хотел перенести мой mysql 5.5 (по умолчанию в Ubuntu) на новый 5.7
(хотел поиграться с новым собственным типом JSON)

Я следовал инструкциям для установки последней версии ....
но MySQL не хотел запускаться.

Потратил некоторое время на поиск, а затем нашел эту строку в /var/log/mysql/errors.log:

unknown variable 'key_buffer=16M'

и это то, что установлено /etc/mysql/my.cnfво время обновления, я решил оставить.

Так, довольно легко после того, что:
заменил мой my.cnfс my.cnf.dpkg-distверсией , расположенной в той же директории ...

Тогда пришлось бежать

sudo mysql_upgrade -u root -p sudo service mysql restart

и теперь MySQL снова работает и работает

Dgo
источник
0

Нашел еще один вариант того, что может быть не так. Я переместил каталог данных, и оказалось, что я забыл сократить каталог для пользователя mysql, который также завершается ошибкой без вывода. Задним числом, очевидно, неправильно, но отсутствие сообщения об ошибке затрудняет поиск каждой тривиальной проблемы.

Kdansky
источник