MySQL Daemon не удалось запустить - centos 6
РЕДАКТИРОВАТЬ. Посмотрите ответы на вопросы о проверке, чтобы решить проблему.
Всякий раз, когда я пытаюсь запустить службу SQLD, я заставляю MySQL Daemon не запускаться. я infact попытался "запустить" службу, выполнив следующие действия:
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
EDIT:
Вот мой файл 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
Ответы
Ответ 1
Наиболее вероятной причиной этой ошибки является то, что ваш сервер mysql не запущен. Когда вы вводите mysql
, вы выполняете клиент mysql.
Попробуйте:
# sudo service mysql start
# mysql
Обновить (после того, как OP включил вход в вопрос, взятый из комментариев ниже):
Спасибо, увидел ваш журнал. В журнале говорится, что пользователь mysql не имеет надлежащие права доступа. Я предполагаю, что ваш пользователь mysql - это mysql (это может проверяться в /etc/my.cnf
, выполнить
chown -R mysql:mysql /var/lib/mysql
и попробуйте снова запустить mysqld
.
Ответ 2
Попробуйте перезапустить apache sudo service httpd restart
. Работал для меня.
Ответ 3
запустите это:
chown -R mysql:mysql /var/lib/mysql
и повторите попытку!
Ответ 4
Вам может потребоваться освободить место из раздела root (/). Остановить 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
Ответ 5
/etc/init.d/mysqld stop
mysqld_safe --skip-grant-tables &
mysql_upgrade
/etc/init.d/mysqld stop
/etc/init.d/mysqld start
Ответ 6
Еще один совет, который работал у меня. Выполните команду:
$ mysql_install_db
Ответ 7
-
/etc/init.d/mysql stop
-
chown -R mysql:mysql/var/lib/mysql
-
mysql_install_db
-
/etc/init.d/mysql start
Все это спасло мой MySQL сервер!
Ответ 8
попробуйте
netstat -a -t -n | grep 3306
чтобы увидеть, как кто-то прослушивает порт 3306
затем убить его
У меня была эта проблема в течение 2 дней. Попробовав решения, размещенные на форумах, я случайно столкнулся с ситуацией, когда мой журнал получал эту ошибку.
проверьте, что у вас еще нет другого процесса mysqld
Ответ 9
У меня была такая же проблема. Когда я проверил error.log, я обнаружил, что мой диск заполнен.
Использование:
df -h
в командной строке. он скажет вам, сколько места у вас осталось. моя была полна. наш файл error.log был 4.77GB. Я загрузил его, а затем удалил.
Затем я использовал сервис mysqld start, и он сработал.
Ответ 10
Ваша база данных была отключена из-за недостаточной памяти!
Вы можете отредактировать файл my.cnf, расположенный ниже графика, чтобы его разрешить.
performance_schema_max_table_instances=200
table_definition_cache=200
table_open_cache=128
Ответ 11
Для тех, кто будет здесь в будущем, если все вышеописанные методы не работают, проверьте файл 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 [email protected] 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
Ответ 12
У меня просто была эта ошибка. Я не мог удаленно подключиться к моему серверу mysql. Я попытался перезапустить сервер mysql с сервисом mysqld restart
(я использовал root). Он остановился, но не начал снова. Оказывается, моя память заполнена. Сбросил несколько ГБ, и он работает нормально.
Ответ 13
Это может быть проблема с разрешением,
Попробуйте выполнить следующую команду /etc/init.d/mysqld start
как пользователь root.
Ответ 14
Если вы используете yum в AIM Linux Amazon EC2.
Для обеспечения безопасности создайте резервную копию в каталоге /var/lib/mysql
sudo yum reinstall -y mysql55-server
sudo service mysqld start
Ответ 15
Ссылка здесь 2.10.2.1 Проблемы с устранением неполадок Запуск сервера MySQL.
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
Ответ 16
RE: MySQL Daemon не удалось запустить - centos 6/RHEL 6
Решение, которое работает для меня, выполняется следующим образом:
- $ mysql_install_db
Пожалуйста, дайте мне знать, если это не решит вашу проблему.