Tidak dapat memulai mysql dengan:
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 lain tidak runnig:
[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
Izin pada "/ tmp" dan "/ var / lib / mysql" adalah 777 /
Ada saran?
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 dan plugin.frm ada di / var / lib / mysql / mysql /.
Tidak ada yang berjalan di port 3306.
mysql.sock tidak ada. Saya mencoba membuatnya sendiri, tetapi setelah restart itu dihapus.
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)
Masalah ini muncul hari ini ketika saya mencoba mengkloning situs saya pada subdomain.
mysql_upgrade
seperti yang disarankan?Jawaban:
1) Pertama-tama pastikan Anda menghapus file socket yang ada menggunakan perintah rm.
2) Bunuh semua proses MySQL yang ada melalui perintah berikut.
3) Sangat penting: Pastikan izin untuk direktori database MySQL di bawah
/var/lib/
folder harus mysql: root4) Dengan informasi di atas Anda harus dapat memulai MySQL dengan sukses dan file socket harus dibuat dengan sukses di bawah direktori database.
sumber
Terima kasih atas jawaban Abhishek yang dikombinasikan dengan output mysqld (Tidak dapat menggunakan /var/run/mysqld/mysqld.sock) Saya berhasil menyelesaikan ini dengan satu perintah:
Kemudian mulai dengan benar:
sumber
Masalah Anda dapat disebabkan oleh kondisi apa pun yang mencegah daemon MySQL dari menulis file socket ke path
/var/lib/mysql
. Jawaban lainnya, seperti sistem file read-only atau kepemilikan direktori salah, menjawab berbagai alasan bahwa MySQL mungkin tidak dapat menulis ke soket.Alasan lain yang mungkin adalah bahwa
/var/lib/mysql
mungkin memiliki konteks SELinux yang salah. Anda dapat mendiagnosis kondisi ini dengan memeriksa penolakan SELinux AVC baru-baru ini setelah mencoba memulai daemon MySQL:ausearch -m avc --start recent
Jika SELinux menolak akses untuk membuat file socket, Anda akan melihat pesan kesalahan seperti ini:
Untuk menyelesaikan penolakan SELinux, cobalah untuk mengembalikan konteks default direktori (distribusi Anda harus menetapkan konteks yang benar
mysqld_db_t
ketika Anda menginstal MySQL atau MariaDB):restorecon -R -v -f /var/lib/mysql
Jika Anda telah menyesuaikan konteks pada sistem Anda, memperbaiki masalah berada di luar cakupan tulisan ini.
sumber
Berdasarkan apa yang Anda tulis, saya sarankan Anda memeriksa apakah filesystem Anda sudah dimount read-only.
sumber
Saya mencoba semua jawaban lain untuk menyelesaikan masalah. Tampaknya ketika saya mengatur selinux ke permisif:
setenforce 0
Saya bisa memulai server.Saya kemudian mengubah direktori sock yang
/var/lib/mysql
memberikan izin selinux ke direktori:Setelah selesai, saya mengaktifkan selinux menggunakan
setenforce 1
memulai layanan mysql dan semuanya baik-baik saja.Semoga ini bisa membantu orang lain.
sumber