Mysqldサービスを開始すると、奇妙なエラーが発生します。
Another MySQL daemon already running with the same unix socket.
実行中のサービスを一覧表示して停止しようとしましたが、mysqldサービスを開始すると同じエラーが発生します。
Mysqldを削除して再インストールすることはできますが、データベースも削除されますか?
問題の発生を防ぐには、サーバーの電源をオフにするのではなく、コマンドラインからサーバーを正常にシャットダウンする必要があります。
#shutdown -h now
これにより、マシンの電源を切る前に実行中のサービスが停止します。
Centosに基づいて、この問題に遭遇したときに再びバックアップを取得する追加の方法は、mysql.sockを移動することです。
# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak
# service mysqld start
サービスを再起動すると、mqsql.sockという新しいエントリが作成されます
これをルートとして実行すると、すべてが設定されます。
rm $(grep socket /etc/my.cnf | cut -d= -f2) && service mysqld start
MySQLのソケットファイルの場所は、/etc/my.conf
を手動で確認するか、単に
grep socket /etc/my.cnf | cut -d= -f2
/var/lib/mysql/mysql.sock
である可能性があります。次に(もちろん、ルートとして、またはSudo
を先頭に付けて)そのファイルを削除します。
rm /var/lib/mysql/mysql.sock
次に、MySQLデーモンを起動します。
service mysqld start
mysqld
を削除しても、問題はまったく解決されません。問題は、CentOSとRedHatがクラッシュ後にsock
ファイルをクリーンアップしないため、自分で行う必要があることです。システムの電源をオフにしないことも(もちろん)推奨されますが、回避できない場合もあるため、この手順で問題を解決できます。
私はこの問題の誰かのための解決策を見つけましたmy.cnfファイルのソケットディレクトリを新しい場所に変更します
socket=/var/lib/mysql/mysql2.sock
およびservice mysqld start
またはGeckoSEOが回答した高速な方法
# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak
# service mysqld start
これに対する私の解決策は、ハードシャットダウンにより/ var/lib/mysql /ディレクトリにmysql.sockが残っていることです。 Mysqlは、実行されていないときにすでに実行されていると考えました。
OSベンダーに、/ var/runにソケットを配置するように依頼するバグレポートを開くだけで、再起動時にソケットが自動的に削除されます。クリーンでない再起動後にこのソケットを保持するのはバグです。/var/runはこれらの種類のファイルのスポットです。
.sockファイルを自動的に消去するには、これらの行をコードの「start)」ブロックの直後にファイル/etc/init.d/mysqldに配置します
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
それは私のために働いた。 UPSを持っていないため、これを行う必要がありました。多くの場合、電源に障害が発生しています。
よろしく。
OSの再起動中にMySQLサービスが適切にシャットダウンしない場合に発生することがあります。 /var/lib/mysql/mysql.sockは残されています。これにより、「mysqld」が起動しなくなります。
以下の手順が役立ちます。
1:サービスmysqld start killall -9 mysqld_safe mysqld service mysqld start
2:rm /var/lib/mysql/mysql.sock service mysqld start
MySQLサービスを開始するには、「/ var/lib/mysql/mysql.sock」を削除して、MySQLサービスを再度開始します。
ソケットファイルを削除します。
[root@server ~]# rm /var/lib/mysql/mysql.sock
rm: remove socket `/var/lib/mysql/mysql.sock'? yes
MySQLサービスを開始します。
[root@server~]# service mysqld start
Starting mysqld: [ OK ]
問題の解決に役立ちます。
Mysqlサービスが異常終了したために発生します。 /var/lib/mysql/mysql.sockファイルの削除またはバックアップを取り、mysqlを再起動します。
何か問題があれば教えてください。