Nie można uruchomić mysql z:
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
Inny mysql nie jest uruchomiony:
[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
Uprawnienia do „/ tmp” i „/ var / lib / mysql” to 777 /
Jakieś sugestie?
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 i plugin.frm istnieją w / var / lib / mysql / mysql /.
Nic nie działa na porcie 3306.
mysql.sock nie istnieje. Próbowałem go utworzyć sam, ale po ponownym uruchomieniu został usunięty.
mount (all 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)
Ten problem pojawił się dzisiaj, gdy próbowałem sklonować moją witrynę do subdomeny.
mysql_upgrade
zgodnie z sugestią?Odpowiedzi:
1) Najpierw upewnij się, że usunąłeś istniejący plik gniazda za pomocą polecenia rm.
2) Zabij wszystkie istniejące procesy MySQL za pomocą następującego polecenia.
3) Bardzo ważne: Upewnij się, że uprawnienie do katalogu bazy danych MySQL w
/var/lib/
folderze powinno być mysql: root4) Dzięki powyższym informacjom powinieneś móc pomyślnie uruchomić MySQL, a plik gniazda powinien zostać pomyślnie utworzony w katalogu bazy danych.
źródło
Dzięki odpowiedzi @ Abhishek w połączeniu z wyjściem mysqld (nie mogę użyć /var/run/mysqld/mysqld.sock) udało mi się rozwiązać to za pomocą jednego polecenia:
Następnie zaczyna się poprawnie:
źródło
Twój problem może być spowodowany przez dowolny warunek, który uniemożliwia demonowi MySQL zapisanie pliku gniazda do ścieżki
/var/lib/mysql
. Inne odpowiedzi, takie jak system plików tylko do odczytu lub nieprawidłowa własność katalogu, dotyczą różnych przyczyn, dla których MySQL może nie być w stanie zapisać do gniazda.Innym możliwym powodem jest
/var/lib/mysql
niepoprawny kontekst SELinux. Możesz zdiagnozować ten warunek, sprawdzając ostatnie odmowy SELCJI AVC po próbie uruchomienia demona MySQL:ausearch -m avc --start recent
Jeśli SELinux odmawia dostępu do utworzenia pliku gniazda, zobaczysz następujący komunikat o błędzie:
Aby rozwiązać problem odmowy SELinuksa, spróbuj przywrócić domyślny kontekst katalogu (twoja dystrybucja powinna ustawić poprawny kontekst
mysqld_db_t
podczas instalacji MySQL lub MariaDB):restorecon -R -v -f /var/lib/mysql
Jeśli dostosowałeś konteksty w swoim systemie, rozwiązanie problemu wykracza poza zakres tego postu.
źródło
Na podstawie tego, co piszesz, sugeruję sprawdzenie, czy system plików jest zamontowany tylko do odczytu.
źródło
Wypróbowałem wszystkie pozostałe odpowiedzi, aby rozwiązać problem. Wygląda na to, że kiedy ustawię selinux na permissive:
setenforce 0
Mogę uruchomić serwer.Następnie zmieniłem katalog skarpet
/var/lib/mysql
nadając uprawnienia selinux do katalogu:Po zakończeniu włączam selinux przy użyciu
setenforce 1
uruchomionej usługi mysql i wszystko poszło dobrze.Mam nadzieję, że to pomaga innym.
źródło