4

UbuntuのセットアップでLAMPスタックを使用しています。

正常に動作し、複数のデータベースをセットアップしてすべてが正常に機能しているのに、今朝突然、使用していたWebページからデータベースエラーが発生し始め、PHPMyAdminにアクセスしようとすると次のようになります。

error #2002 Cannot log in to the MySQL server

私はbashプロンプトに入り、rootユーザーが何をしているのかを確認しながらログインしようとすると、同様のエラーが発生します。

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) 

上記のエラーで指定されたパスに、mysql.sockファイルが存在することを確認しました。すべてが良好で、mysqlが所有する権限。万が一に備えて権限をリセットしても、同じエラーが発生します。

BASHから見たファイルは次のとおりです。

srwxrwxrwx 1 mysql mysql 0 Oct 21 05:10 mysqld.sock

サービスを再起動するだけだと思っていましたが、サービスを停止、開始、または再起動しようとすると同じエラーが発生します。

これは本当に私を困惑させました。私はLinuxなどの専門家ではありませんが、構成設定を変更しなかったときにこれが突然発生する可能性があることを理解していません。過去数か月間は完全に正常に動作していました。

Apacheを再起動しようとしましたが、エラーが発生しました。

apache2: bad user name ${APACHE_RUN_USER}

これはMySQLのものとは関係ないと思いますが、関係している可能性があると思いました。Apacheエラーはセットアップにあるようですが、運が怠惰であることを知っていると、単純なことを見落とし、すべてがクラッシュしました。

問題を解決する方法、さらに重要なことにこの発生を防ぐ方法についての助けをいただければ幸いです。

私は基本的なグーグル検索によって返されたほとんどのものを試しました、そしてここを見回します。私はまだsockファイルを削除して再作成しようとはしていませんが、これまでのところ他のほとんどのことは機能していません。

編集:

Apacheサーバーがまだ正常に実行されていることを追加したかっただけです。サーバーを停止して再起動しようとするとエラーが発生しますが、問題はありません。MySQLに依存しないページは、問題なく読み込まれます。

また、PIDを検索してmysqlプロセスを強制終了しようとしました。また、以下に示すように、killall mysqld(および、キックのためだけにkillall mysqlも)を実行しました。これらの試行でプロセスは見つかりませんでした。

関連性があるかどうかはわかりませんが、スーパーユーザーを使用している場合でも、mysqld.sockファイルを開いたり(vimで)表示したりできません(許可が拒否されました)。

4

3 に答える 3

4

使ってみましたか

killall mysqld

サービスを終了してからMySQLサービスを開始するのではなく、サーバーを強制終了しますか?

または、次を使用してmysql.sockを削除してみてください。

rm /var/run/mysqld/mysqld.sock

次に、サービスを開始するか、を実行して、MySQLサーバーを再度実行する必要があります。

mysqld

それ自体のために新しい/var/run/mysqld/mysqld.sockを作成する必要があり、すべてがうまくいくはずです。考えてみてください。これは、コンピューターの電源が正しくオフになっていないか、MySQLが少し混乱しているために発生した可能性があります。

于 2012-11-04T02:29:25.760 に答える
2

Ubuntuで1つのマイクロインスタンススワップスペースを作成します

dd if = / dev / zero of = / swapfile bs = 1M count = 1024

mkswap / swapfile

swapon / swapfile

于 2014-11-28T07:01:27.567 に答える
1

mysqlサーバーを再起動しようとしましたか

/etc/init.d/mysqld restart 
/etc/init.d/mysqld stop 
/etc/init.d/mysqld start
于 2012-11-04T02:52:45.733 に答える