Pertanyaan centos: Daemon MySQL lainnya sudah berjalan dengan soket unix yang sama


Saya memiliki kesalahan aneh ketika memulai layanan mysqld:

Another MySQL daemon already running with the same unix socket.

Saya sudah mencoba mencantumkan layanan yang berjalan dan menghentikannya tetapi kesalahan yang sama terjadi ketika memulai layanan mysqld.

Saya dapat mencoba untuk menghapus mysqld dan instal ulang tetapi apakah ini akan menghapus database juga?


75
2017-12-05 17:59


asal


Jawaban:


Untuk mencegah masalah terjadi, Anda harus melakukan shutdown server secara anggun dari baris perintah daripada mematikan server.

# shutdown -h now

Ini akan menghentikan layanan yang berjalan sebelum mematikan mesin.

Berdasarkan Centos, metode tambahan untuk mendapatkannya kembali ketika Anda mengalami masalah ini adalah dengan memindahkan mysql.sock:

# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak

# service mysqld start

Restart layanan membuat entri baru bernama mqsql.sock


225
2017-12-14 10:11



TL; DR:

Jalankan ini sebagai root dan Anda akan siap:

rm $(grep socket /etc/my.cnf | cut -d= -f2)  && service mysqld start

Versi lebih lama:

Anda dapat menemukan lokasi file soket MySQL dengan secara manual mengaduk-aduk /etc/my.conf, atau hanya dengan menggunakan

grep socket /etc/my.cnf | cut -d= -f2

Itu mungkin /var/lib/mysql/mysql.sock. Kemudian (sebagai root, tentu saja, atau dengan sudo prepended) hapus file itu:

rm /var/lib/mysql/mysql.sock

Kemudian mulai daemon MySQL:

service mysqld start

Menghapus mysqld tidak akan mengatasi masalah sama sekali. Masalahnya adalah CentOS & RedHat tidak membersihkan sock file setelah macet, jadi Anda harus melakukannya sendiri. Menghindari mematikan sistem Anda (tentu saja) juga disarankan, tetapi terkadang Anda tidak dapat menghindarinya, jadi prosedur ini akan menyelesaikan masalah.


18
2018-01-09 17:16



Saya telah menemukan solusi untuk siapa pun dalam masalah ini ubah dir soket ke lokasi baru di file my.cnf

socket=/var/lib/mysql/mysql2.sock

dan service mysqld start

atau cara cepat seperti yang GeckoSEO jawab

# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak

# service mysqld start

4
2017-12-05 18:31



Solusi saya untuk ini adalah sisa mysql.sock di direktori / var / lib / mysql / dari hard shutdown. Mysql pikir itu sudah berjalan ketika itu tidak berjalan.


3
2017-12-06 21:49



Buka saja laporan bug dengan vendor OS Anda meminta mereka untuk meletakkan soket di / var / run sehingga secara otomatis dihapus saat reboot. Ini adalah bug untuk menyimpan soket ini setelah reboot yang tidak bersih, / var / run adalah tempat untuk jenis file ini.


2
2018-01-23 11:29



untuk membersihkan file .sock secara otomatis, tempatkan baris-baris ini di file /etc/init.d/mysqld segera setelah "start" "blok kode

test -e /var/lib/mysql/mysql.sock
SOCKEXIST=$?

ps cax | grep mysqld_safe
NOPIDMYSQL=$?

echo NOPIDMYSQL $NOPIDMYSQL
echo SOCKEXIST $SOCKEXIST

if [ $NOPIDMYSQL -eq 1 ] && [ $SOCKEXIST -eq 0 ] ; then
    echo "NOT CLEAN"
    rm -f /var/lib/mysql/mysql.sock
    echo "FILE SOCK REMOVED"
else
    echo "CLEAN"
fi

itu berhasil untukku. Saya harus melakukan ini karena saya tidak memiliki UPS dan sering kali kami mengalami kegagalan pasokan listrik.

salam.


1
2018-01-15 10:37



Ini kadang-kadang muncul ketika layanan MySQL tidak dimatikan dengan benar selama reboot OS. The /var/lib/mysql/mysql.sock telah ditinggalkan. Ini mencegah 'mysqld' untuk memulai.

Langkah-langkah ini dapat membantu:

1: layanan mysqld start killall -9 mysqld_safe mysqld layanan mysqld start

2: rm /var/lib/mysql/mysql.sock    layanan mysqld start


1
2018-04-22 07:13