Не могу начать MySQL с:
130408 11:31:22 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
/usr/libexec/mysqld: Table 'plugin' is read only
130408 11:31:22 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
130408 11:31:22 InnoDB: Initializing buffer pool, size = 8.0M
130408 11:31:22 InnoDB: Completed initialization of buffer pool
130408 11:31:23 InnoDB: Started; log sequence number 0 19514977
130408 11:31:23 [ERROR] Can't start server : Bind on unix socket: Permission denied
130408 11:31:23 [ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
130408 11:31:23 [ERROR] Aborting
130408 11:31:23 InnoDB: Starting shutdown...
130408 11:31:28 InnoDB: Shutdown completed; log sequence number 0 19514977
130408 11:31:28 [Note] /usr/libexec/mysqld: Shutdown complete
130408 11:31:28 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Другой mysql не работает:
[root@triton667 etc]# ps ax | grep mysql
9195 pts/1 S+ 0:00 grep mysql
my.cnf:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
tmpdir=/tmp
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
max_allowed_packet=256M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Разрешения для "/ tmp" и "/ var / lib / mysql" 777 /
Какие-либо предложения?
UPD1 :
[root@triton667 etc]# mysql_upgrade
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck with default connection arguments
mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) trying to connect
FATAL ERROR: Upgrade failed
UPD2 : plugin.MYD, plugin.MYI и plugin.frm существуют в / var / lib / mysql / mysql /.
На порту 3306 ничего не работает.
mysql.sock не существует. Я пытался создать его сам, но после перезапуска его удалили.
mount (все rw):
[root@triton667 mysql]# mount
/dev/md1 on / type ext4 (rw,noatime,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/md0 on /boot type ext2 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
Эта проблема появилась сегодня, когда я попытался клонировать свой сайт на поддомене.
mysql_upgrade
как предложено?Ответы:
1) Сначала убедитесь, что вы удалили существующий файл сокета с помощью команды rm.
2) Убить все существующие процессы MySQL с помощью следующей команды.
3) Очень важно: убедитесь, что разрешение для каталога базы данных MySQL в
/var/lib/
папке должно быть mysql: root4) С помощью приведенной выше информации вы сможете успешно запустить MySQL и файл сокета должен быть успешно создан в каталоге базы данных.
источник
Благодаря ответу @ Abhishek в сочетании с выводом mysqld (не могу использовать /var/run/mysqld/mysqld.sock) мне удалось решить эту проблему одной командой:
Тогда это начинается правильно:
источник
Ваша проблема может быть вызвана любым условием, которое мешает демону MySQL записать файл сокета в путь
/var/lib/mysql
. Другие ответы, такие как доступная только для чтения файловая система или неправильное владение каталогом, касаются различных причин, по которым MySQL может не иметь возможности записи в сокет.Другая возможная причина -
/var/lib/mysql
неправильный контекст SELinux. Вы можете диагностировать это состояние, проверив последние отклонения SELinux AVC после попытки запустить демон MySQL:ausearch -m avc --start recent
Если SELinux отказывает в доступе для создания файла сокета, вы увидите сообщение об ошибке, подобное этому:
Чтобы устранить отказ SELinux, попытайтесь восстановить контекст каталога по умолчанию (ваш дистрибутив должен установить правильный контекст,
mysqld_db_t
когда вы установили MySQL или MariaDB):restorecon -R -v -f /var/lib/mysql
Если вы настроили контексты в вашей системе, решение проблемы выходит за рамки этого поста.
источник
Исходя из того, что вы пишете, я бы посоветовал вам проверить, смонтирована ли ваша файловая система только для чтения.
источник
Я попробовал все остальные ответы, чтобы решить проблему. Похоже, что когда я установил selinux для разрешения:
setenforce 0
я мог запустить сервер.Затем я изменил каталог sock,
/var/lib/mysql
предоставив разрешения selinux для каталога:После этого я включил использование selinux,
setenforce 1
запустив службу mysql, и все было хорошо.Надеюсь, что это помогает другим.
источник