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. Если это не работает, значит что-то не так с вашей установкой.


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 пожаловалась на то, что не нашла этот файл.


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

3

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

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

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

sudo service apache2 restart

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

sudo service mysql restart

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


2

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


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

1

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


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

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


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 снова работает и работает


0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.