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

47084
Andrew

Я получаю эту ошибку при попытке войти в 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) пусты (если они правильные)

11
что происходит, когда вы sudo /etc/init.d/mysql статус emgee 15 лет назад 0

10 ответов на вопрос

10
toystory

В 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 dir

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 10 лет назад 0
Это `/ var / run / mysqld` или` / var / run / mysql`? CMCDragonkai 9 лет назад 0
3
lilott8

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

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

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

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

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

df -h

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

3
user143757

Я также недавно получил эту проблему после обновления 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 пожаловалась на то, что не нашла этот файл.

Большое спасибо! После того, как я чуть не вырвал мои волосы, это, наконец, исправило их. Olathe 11 лет назад 0
3
samwize

I had the same problem with my 512MB Digital Ocean droplet.

Turned out it is due to insufficient memory.

An immediate solution is to restart other services to free up memory eg.

sudo service apache2 restart 

Then hopefully, with enough memory, you should be able to restart mysql

sudo service mysql restart 

The long term solution is to either get more RAM, or create swap memory.

2
innaM

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

mysql.err и mysql.log оба пусты Andrew 15 лет назад 3
1
boatcoder

Had this same problem, turns out the solution was staring me in the face. The drive was full. You get no logs because there is no where to write them.....

0
Programster

Та же проблема мучила меня целую вечность на 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). В конце я опустился до версии 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
dGo

figure this might help others... so here it is.

I wanted to migrate my mysql 5.5 (ubuntu's default) to the new 5.7
(wanted to play arround with the new native JSON type)

I followed the instructions to install the latest version....
but MySQL did not want to start.

Spent quite some time looking and then found this line in the /var/log/mysql/errors.log:

unknown variable 'key_buffer=16M'

and that's something that is set in /etc/mysql/my.cnf that, during the upgrade, I chose to keep.

So, quite easy after that:
replaced my my.cnf with my.cnf.dpkg-dist version located in the same directory...

Then had to run

sudo mysql_upgrade -u root -p sudo service mysql restart

and now MySQL is back up and running

0
Kdansky

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

Похожие вопросы