ソケット 'socket_name' を介してローカル MySQL サーバーに接続できません (2) - MySQL エラーを解決する方法: ソケット (2) を介してローカル MySQL サーバーに接続できません。コード例
MySQL データベースを開発および管理する場合、時々問題が発生します。一般的な問題の 1 つは、ソケット経由でローカル MySQL サーバーに接続できないことです。 MySQL サーバーに接続しようとすると、「ソケット 'socket_name' (2) を介してローカル MySQL サーバーに接続できません」というエラー メッセージが表示される場合があります。
この記事では、この問題の原因について説明し、この問題の解決に役立ついくつかの解決策と具体的なコード例を提供します。
2.1 ソケット ファイルのパスを確認します
最初に、指定されたソケットがファイルであることを確認する必要があります。パスは正しいですか?オペレーティング システムと MySQL のバージョンに応じて、ソケット ファイルへのパスが異なる場合があります。一般的なソケット ファイル パスには、/tmp/mysql.sock
または /var/run/mysqld/mysqld.sock
が含まれます。 MySQL 構成ファイル (通常は /etc/my.cnf
または /etc/mysql/mysql.conf.d/mysqld.cnf
) パスを調べることで、ソケット ファイルを見つけることができます。 。構成ファイルで指定されたパスが実際のパスと一致していることを確認してください。
2.2 MySQL サーバーが正常に動作しているかどうかを確認する
ソケット ファイルのパスが正しい場合は、MySQL サーバーが正常に動作しているかどうかを確認する必要があります。オペレーティング システムに応じて、さまざまなコマンドを使用して MySQL サーバーの実行ステータスを確認できます。
Ubuntu または Debian システムでは、次のコマンドを使用して MySQL サーバーのステータスを確認できます。
sudo service mysql status
CentOS または Red Hat システムでは、次のコマンドを使用して MySQL サーバーの状態を確認できます。 status:
sudo systemctl status mysqld
MySQL サーバーが実行されていない場合は、次のコマンドを使用して起動できます:
sudo service mysql start
2.3 MySQL サーバーの構成を確認します
ソケット ファイルのパスが正しい場合は、 MySQL サーバーが実行されているのに接続できない場合は、MySQL サーバーの構成ファイルに問題がある可能性があります。
MySQL サーバー構成ファイル内のソケット ファイル パスを、/tmp/mysql.sock
などの絶対パスに設定してみることができます。構成ファイルを変更した後、変更を有効にするために MySQL サーバーを再起動する必要があります。
2.4 ファイルまたはディレクトリのアクセス許可を確認する
MySQL サーバーのソケット ファイルのファイルまたはディレクトリのアクセス許可が正しくない場合、MySQL サーバーに接続できないという問題が発生する可能性があります。
ソケット ファイルが配置されているファイルまたはディレクトリの所有権と権限が正しく設定されていることを確認してください。次のコマンドを使用して、ファイルとディレクトリの権限を変更できます。
sudo chown mysql:mysql /path/to/socket/file sudo chmod 775 /path/to/socket/file
/path/to/socket/file
をソケット ファイルへの実際のパスに置き換えてください。
<?php try { $dsn = 'mysql:dbname=mydatabase;host=localhost;unix_socket=/tmp/mysql.sock'; $user = 'username'; $password = 'password'; $dbh = new PDO($dsn, $user, $password); echo "Connected to the MySQL database successfully."; } catch (PDOException $e) { echo "Connection failed: " . $e->getMessage(); } ?>
上記のコードでは、unix_socket
パラメータを使用して、MySQL サーバーのソケット ファイル パスを指定しました。
dbname
をデータベース名に置き換え、host
をホスト名 (通常は localhost
) に置き換え、username# を置き換えてください。 ## と
password はデータベースのユーザー名とパスワードに置き換えます。
ソケット経由でローカル MySQL サーバーに接続できない問題は、構成エラー、サーバーが起動していない、またはファイル権限の問題が原因である可能性があります。この問題は、ソケット ファイル パス、MySQL サーバーのステータス、構成ファイル、およびファイルまたはディレクトリのアクセス許可を確認することで解決できます。
以上がソケット 'socket_name' を介してローカル MySQL サーバーに接続できません (2) - MySQL エラーを解決する方法: ソケット 'socket_name' を介してローカル MySQL サーバーに接続できません (2)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。