web-dev-qa-db-ja.com

centos:同じUNIXソケットで既に実行されている別のMySQLデーモン

Mysqldサービスを開始すると、奇妙なエラーが発生します。

Another MySQL daemon already running with the same unix socket.

実行中のサービスを一覧表示して停止しようとしましたが、mysqldサービスを開始すると同じエラーが発生します。

Mysqldを削除して再インストールすることはできますが、データベースも削除されますか?

76
Mas

問題の発生を防ぐには、サーバーの電源をオフにするのではなく、コマンドラインからサーバーを正常にシャットダウンする必要があります。

#shutdown -h now

これにより、マシンの電源を切る前に実行中のサービスが停止します。

Centosに基づいて、この問題に遭遇したときに再びバックアップを取得する追加の方法は、mysql.sockを移動することです。

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

# service mysqld start

サービスを再起動すると、mqsql.sockという新しいエントリが作成されます

225
GeckoSEO

TL; DR:

これをルートとして実行すると、すべてが設定されます。

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ファイルをクリーンアップしないため、自分で行う必要があることです。システムの電源をオフにしないことも(もちろん)推奨されますが、回避できない場合もあるため、この手順で問題を解決できます。

18
iconoclast

私はこの問題の誰かのための解決策を見つけました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
4
Mas

これに対する私の解決策は、ハードシャットダウンにより/ var/lib/mysql /ディレクトリにmysql.sockが残っていることです。 Mysqlは、実行されていないときにすでに実行されていると考えました。

3
user3076142

OSベンダーに、/ var/runにソケットを配置するように依頼するバグレポートを開くだけで、再起動時にソケットが自動的に削除されます。クリーンでない再起動後にこのソケットを保持するのはバグです。/var/runはこれらの種類のファイルのスポットです。

2
Paul

.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を持っていないため、これを行う必要がありました。多くの場合、電源に障害が発生しています。

よろしく。

1
ugo

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

1
Vikash Kumar

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  ]

問題の解決に役立ちます。

0
Kamesh Jungi

Mysqlサービスが異常終了したために発生します。 /var/lib/mysql/mysql.sockファイルの削除またはバックアップを取り、mysqlを再起動します。

何か問題があれば教えてください。

0