このコマンドを試してください。
sudo service mysql start
システム上のすべてのソケット ファイルを見つけるには:
sudo find / -type s
Mysql サーバー システムのソケットが /var/lib/mysql/mysql.sock
で開かれていました
ソケットが開かれている場所を見つけたら、/etc/my.cnf ファイルにソケット ファイルへのパスを含む行を追加または編集します。
socket=/var/lib/mysql/mysql.sock
コマンド ライン実行可能ファイルを起動したシステム起動スクリプトで、フラグ --socket=path
が指定されている場合があります。 .このフラグは my.cnf の場所をオーバーライドする可能性があり、その結果、my.cnf ファイルが指定する場所にソケットが見つからない可能性があります。次に、mysql コマンド ライン クライアントを実行しようとすると、ソケットを見つけるために my.cnf が読み取られますが、サーバーがソケットを作成した場所から逸脱しているため、ソケットは見つかりません。したがって、ソケットがどこにあるかを気にしない限り、my.cnf を一致するように変更するだけで機能します。
次に、mysqld プロセスを停止します。これを行う方法はシステムによって異なります。
Linux システムのスーパー ユーザーで、Mysql セットアップで使用する具体的な方法がわからない場合は、次のいずれかを試してください。
service mysqld stop
/etc/init.d/mysqld stop
mysqladmin -u root -p shutdown
- 一部のシステムでは、mysql を停止するための洗練された方法が設定されていません (または何らかの理由で mysql が応答しません)。次のいずれかで mysql を強制終了できます:
- ワンステップ:
pkill -9 mysqld
- 2 ステップ (最も好ましくない):
pgrep mysql
のいずれかで mysql のプロセス ID を見つけます。 またはps aux | grep mysql | grep -v grep
- プロセス ID が
4969
であると仮定しますkill -9 4969
で終了
- ワンステップ:
これを行った後、/var/run/mysqld/
で pid ファイルを探すことができます。 削除してください
ソケットのパーミッションが、mysqld を実行しているすべてのユーザーが読み取り/書き込みできるようになっていることを確認してください。簡単なテストは、完全な読み取り/書き込みモードで開いて、まだ機能するかどうかを確認することです:
chmod 777 /var/run/mysqld/mysqld.sock
これで問題が解決した場合は、セキュリティ設定に基づいて、必要に応じてソケットのアクセス許可と所有権を調整できます。
また、ソケットが存在するディレクトリは、mysqld プロセスを実行しているユーザーがアクセスできる必要があります。
このエラーは、mysql の複数のインストールが原因で発生します。コマンドを実行してください:
ps -A|grep mysql
以下を使用してプロセスを終了します:
sudo pkill mysql
次にコマンドを実行します:
ps -A|grep mysqld
また、次のコマンドを実行してこのプロセスを強制終了します:
sudo pkill mysqld
これで、次のコマンドを実行するだけで完全に設定されました:
service mysql restart
mysql -u root -p
mysql が再び正常に動作するようになりました