はじめに
MySQLを使用しているユーザーは、エラー'ソケットを介してローカルMySQLサーバーに接続できません'/var/run/mysqld/mysqld.sock(2)'に遭遇する可能性があります。 MySQLインターフェースにログインするとき。この問題は通常、MySQLが mysqld.sockにアクセスできない場合に発生します。 ソケットファイル。
このチュートリアルでは、「ソケットを介してローカルMySQLサーバーに接続できない」の考えられる原因について説明します。 'エラーが発生し、この問題を解決するさまざまな方法が表示されます。
前提条件
- Ubuntu20.04を実行しているシステム
- sudo権限を持つユーザーアカウント
- ターミナルウィンドウ/コマンドラインへのアクセス
- インストールされてすぐに使用できるMySQLのコピー(Ubuntu 20.04にMySQLをインストールするためのガイドでインストール方法を学ぶ)
「ソケットを介してローカルMySQLサーバーに接続できません」/var/run/mysqld/mysqld.sock「(2)」エラーの解決
'ソケットを介してローカルMySQLサーバーに接続できない'/var/run/mysqld/mysqld.sock(2)'を解決する方法は複数あります。 エラー。 1つの解決策が機能しない場合は、問題を解決する解決策が見つかるまでリストを下に移動します。
方法1:MySQLサービスを確認する
1.次のコマンドでMySQLサービスのステータスを確認します:
sudo systemctl status mysql
2.サービスが実行されていない場合は、次を使用してサービスを再起動します。
sudo systemctl start mysql
3.この問題が発生しないようにするには、起動時に自動的に開始するようにMySQLサービスを設定します。
sudo systemctl enable mysql
方法2:mysqld.sockの場所を確認する
'ソケットを介してローカルMySQLサーバーに接続できません'/var/run/mysqld/mysqld.sock'(2)' MySQLがmysql.sockを見つけられない場合にもエラーが発生します ソケットファイル。
1.現在のmysqld.sockを見つけます find
を使用した場所 システム上のすべてのソケットファイルを一覧表示するコマンド:
sudo find / -type s
2.選択したテキストエディタでMySQL構成ファイルを開きます。この例では、 nanoを使用します :
sudo nano /etc/mysql/my.cnf
3.次に、MySQL構成ファイルの最後に次の行を追加します。
[mysqld]
socket=[path to mysqld.sock]
[client]
socket=[path to mysqld.sock]
場所:
-
[path to mysqld.sock]
: mysqld.sockへのパス ステップ1で見つけたソケットファイル 。
もう1つの方法は、 mysqld.sockの場所からシンボリックリンクを作成することです。 / var / run / mysqldへ ディレクトリ:
ln -s [path to mysqld.sock] /var/run/mysqld/mysqld.sock
4. Ctrl + Xを押します 構成ファイルを閉じて、 Yと入力します Enterを押します 行った変更を保存します。
4.最後に、MySQLサービスを再起動します。
sudo systemctl restart mysql
方法3:MySQLフォルダーのアクセス許可を確認する
もう1つの考えられる原因は、MySQLサービスが / var / run / mysqldにアクセスできないことです。 権限制限によるディレクトリ:
1.この問題を解決するには、 mysqldの権限設定を変更します ディレクトリ:
sudo chmod -R 755 /var/run/mysqld
権限を755
に設定する rootユーザーがディレクトリの読み取り、書き込み、および実行を許可しますが、他のユーザーは読み取りと実行のみが可能です。
2.変更を有効にするためにMySQLサービスを再起動します:
sudo systemctl restart mysql
方法4:複数のMySQLインスタンスを確認する
このエラーは、MySQLの複数のインスタンスが同時に実行されている場合にも発生します。
1. MySQLのすべてのインスタンスを一覧表示するには、次を使用します。
ps -A|grep mysqld
2.複数のMySQLインスタンスが実行されている場合は、次のコマンドでインスタンスを終了します。
sudo pkill mysqld
3. MySQLサービスを再起動して、MySQLの単一インスタンスを開始します。
sudo systemctl restart mysql