Не удалось запустить демон MySQL - centos 6

РЕДАКТИРОВАТЬ: посмотрите на отмеченные галочкой комментарии, чтобы решить вашу проблему.

Всякий раз, когда я пытаюсь запустить службу SQLD, я получаю MySQL Daemon Failed to Start. Я попытался "запустить" службу, выполнив следующие действия:

service mysqld start

Также

Когда я печатаю: mysql

Я получил:

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

Я знаю, что в этом каталоге должен быть файл mysql.sock, поэтому я его создаю. Но файл просто автоматически удаляет себя, и я продолжаю получать ошибку 2002.

Я также не могу войти в PHPMyAdmin из-за ошибки. Я могу получить доступ к странице phpmyadmin, но при входе в систему я получаю: #2002 Cannot log in to the MySQL server

РЕДАКТИРОВАТЬ:

Вот мой файл mysql.log:

131201 13:05:07 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
131201 13:18:18 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
131201 13:18:18 [Note] Plugin 'FEDERATED' is disabled.
/usr/libexec/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
131201 13:18:18 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
131201 13:18:18 InnoDB: The InnoDB memory heap is disabled
131201 13:18:18 InnoDB: Mutexes and rw_locks use GCC atomic builtins
131201 13:18:18 InnoDB: Compressed tables use zlib 1.2.3
131201 13:18:18 InnoDB: Using Linux native AIO
131201 13:18:18 InnoDB: Initializing buffer pool, size = 128.0M
131201 13:18:18 InnoDB: Completed initialization of buffer pool
131201 13:18:18  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
131201 13:18:18 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

Я запустил mysql_upgrade и получил

Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
FATAL ERROR: Upgrade failed

17 ответов

Решение

Наиболее вероятной причиной этой ошибки является то, что ваш сервер MySQL не работает. Когда вы вводите mysql Вы выполняете клиент MySQL.

Пытаться:

# sudo service mysql start
# mysql

Обновление (после того, как ОП включил лог в вопросе; взято из комментариев ниже):

Спасибо, увидел ваш журнал. В журнале говорится, что у пользователя mysql нет необходимых прав доступа. Я предполагаю, что ваш пользователь MySQL является MySQL (это можно проверить в /etc/my.cnfвыполнить

chown -R mysql:mysql /var/lib/mysql

и попробуйте начать mysqld снова.

Попробуйте перезапустить apache sudo service httpd restart, Работал на меня.

Запустите это:

chown -R mysql:mysql /var/lib/mysql

и попробуй еще раз!

Вам может потребоваться освободить место в корневом (/) разделе. Остановите процесс mysql:

/etc/init.d/mysql stop

Удалите неиспользуемую базу данных из mySql командой:

rm -rf [Database-Directory]

Выполнить это в /var/lib/mysql, Теперь, если вы бежите df -hВы можете быть смущены все еще полным пространством. Чтобы удалить каталог неиспользуемой базы данных, который нужно затронуть, вам нужно уничтожить процессы, использующие текущий каталог / раздел.

остановка mysql_safe или же mysqld_safe а потом mysqld:

ps -A

Затем найдите номер процесса mysql (например, 2234). Затем выполните:

kill 2234

Теперь начните снова MySQL:

/etc/init.d/mysql start
 /etc/init.d/mysqld stop

  mysqld_safe --skip-grant-tables &

  mysql_upgrade

 /etc/init.d/mysqld stop

 /etc/init.d/mysqld start

Еще один совет, который работал для меня. Запустите команду:

$ mysql_install_db

Для тех, кто будет здесь в будущем, если все вышеперечисленные методы не работают, проверьте файл my.cnf:

$ sudo gedit /etc/my.cnf

Найдите строку, начинающуюся с:

bind-address=[an-IP-address]

Проверьте правильность IP-адреса после знака равенства. Если вы даже не знаете, что это за IP, просто используйте localhost, тогда вы можете подключиться к MySQL только на одном хосте.

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

После этого добавьте пользователя для доступа к вашей базе данных, например:

mysql> GRANT ALL ON database_name.* TO user@xx.xxx.xx.xx IDENTIFIED BY 'your_password';

Замените xx.xx.xx.xx на ваш локальный IP-адрес вашего ноутбука / настольного компьютера или, если он динамический, вы можете добавить их либо: "192.168.0.%" В качестве динамического класса C, либо "%", если хотите иметь возможность подключения из любого места (это менее безопасно)

Кроме того, если установлен брандмауэр, следует открыть порт на брандмауэре;

Например в Ubuntu:

sudo ufw allow 3306/tcp
sudo service ufw restart

Теперь проверьте, можно ли запустить сервис:

$ sudo service mysqld start
  1. /etc/init.d/mysql stop
  2. chown -R mysql: mysql / var / lib / mysql
  3. mysql_install_db
  4. /etc/init.d/mysql start

Все это спасло мой MySQL сервер!

Если вы используете yum в AIM Linux Amazon EC2. В целях безопасности создайте резервную копию каталога /var/lib/mysql

sudo yum reinstall -y mysql55-server

sudo service mysqld start

У меня была такая же проблема. Когда я проверил error.log, я обнаружил, что мой диск переполнен.

Использование:

df -h 

в командной строке. он скажет вам, сколько места у вас осталось. мой был полон. нашел мой файл error.log был 4.77GB. Я скачал его, а затем удалил. Тогда я воспользовался сервисом mysqld start и все заработало.

Пытаться

netstat -a -t -n | grep 3306 

чтобы увидеть, кто слушает порт 3306, а затем убить его

У меня была эта проблема в течение 2 дней. Испытывая решения, опубликованные на форумах, я случайно столкнулся с ситуацией, когда мой журнал получал эту ошибку

проверьте, что у вас еще нет другого процесса mysqld

Ваша база данных была закрыта из-за недостатка памяти! Вы можете отредактировать файл my.cnf base ниже графика, чтобы решить его

performance_schema_max_table_instances=200
table_definition_cache=200
table_open_cache=128

Это может быть проблема с разрешением,

Пожалуйста, попробуйте следующую команду /etc/init.d/mysqld start как пользователь root.

RE: Не удалось запустить демон MySQL - centos 6 / RHEL 6

  1. Yum Установить MySQL
  2. /etc/init.d/mysqld start MySQL Daemon не удалось запустить. Запуск mysqld: [FAILED]

  3. Просмотрите журнал: /var/log/mysqld.log

  4. Вы можете получить эту ошибку: [ОШИБКА] Не удается открыть таблицу mysql.plugin. Пожалуйста, запустите mysql_upgrade, чтобы создать его.

Решение, которое работает для меня, работает так:

  1. $ mysql_install_db

Пожалуйста, дайте мне знать, если это не решит вашу проблему.

Ссылка здесь 2.10.2.1 Устранение неполадок при запуске MySQL Server.

1. Найдите каталог данных, он был настроен в my.cnf.

[mysqld]
datadir=/var/lib/mysql

2. Проверьте файл err, в нем записано сообщение об ошибке, объясняющее, почему запуск сервера mysql не удался. имя файла err связано с вашим именем хоста.

cd /var/lib/mysql
ll
tail (hostname).err

3. Если вы найдете такие сообщения, как:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 33554432 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
170513 14:25:22 [ERROR] Plugin 'InnoDB' init function returned error.
170513 14:25:22 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
170513 14:25:22 [ERROR] Unknown/unsupported storage engine: InnoDB
170513 14:25:22 [ERROR] Aborting

затем

удалить ib_logfile0 и ib_logfile1

, затем,

/etc/init.d/mysqld start

что мне помогло, так это добавить следующие строки в /etc/my.cnf

      innodb_force_recovery=4

а потомsudo service mysqld start

работал как шарм

У меня только что была эта ошибка. Я не мог подключиться удаленно к моему серверу MySQL. Я попытался перезапустить сервер MySQL с сервисом mysqld restart (Я использовал root). Это прекратилось, но не началось снова. Оказывается, моя память была полна. Вычистил несколько ГБ и все работает нормально.

Другие вопросы по тегам