Не удалось запустить демон 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
- /etc/init.d/mysql stop
- chown -R mysql: mysql / var / lib / mysql
- mysql_install_db
- /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
- Yum Установить MySQL
/etc/init.d/mysqld start MySQL Daemon не удалось запустить. Запуск mysqld: [FAILED]
Просмотрите журнал: /var/log/mysqld.log
- Вы можете получить эту ошибку: [ОШИБКА] Не удается открыть таблицу mysql.plugin. Пожалуйста, запустите mysql_upgrade, чтобы создать его.
Решение, которое работает для меня, работает так:
- $ 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). Это прекратилось, но не началось снова. Оказывается, моя память была полна. Вычистил несколько ГБ и все работает нормально.