ローカル MySQL サーバーに接続できない?エラー "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)" の原因と解決方法を徹底解説!初心者でも安心!
ローカル MySQL サーバーへの接続エラー "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)" の解決方法
このエラーは、ローカル MySQL サーバーに接続できないことを示しています。原因はいくつか考えられますが、主に以下のいずれかです。
- MySQL サーバーが起動していない
- ソケットファイルが存在しない、またはアクセス権限が不正
- クライアントとサーバーの接続設定が一致していない
解決方法
以下の手順を順番に試して、問題を解決してください。
以下のコマンドを実行して、MySQL サーバーが起動していることを確認します。
systemctl status mysql
出力例
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2023-11-16 10:54:34 JST; 4 days ago
Main PID: 12345 (mysqld)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/mysql.service
├─12345 /usr/sbin/mysqld
└─12346 /usr/bin/mysqld_safe
...
サーバーが起動していない場合
systemctl start mysql
ソケットファイルの確認
ls -l /var/lib/mysql/mysql.sock
srwxrwxrwx 1 mysql mysql 0 3月 8 12:34 /var/lib/mysql/mysql.sock
ファイルが存在しない場合
systemctl restart mysql
ファイルが存在するが、アクセス権限が不正の場合
sudo chmod 660 /var/lib/mysql/mysql.sock
接続設定の確認
確認項目
- ホスト名: 接続先ホスト名は "localhost" または "127.0.0.1" である必要があります。
- ポート番号: 接続先ポート番号は、デフォルトの場合は 3306 です。
- ソケットファイル: 接続先ソケットファイルは、デフォルトの場合は "/var/lib/mysql/mysql.sock" です。
設定が一致していない場合
クライアントの設定ファイルを変更して、接続設定を一致させます。
その他の解決方法
上記の手順で問題が解決しない場合は、以下の解決方法を試してみてください。
- MySQL のエラーログを確認する
MySQL のエラーログには、接続エラーの原因に関する情報が記載されている可能性があります。
- ファイアウォールの設定を確認する
ファイアウォールが MySQL サーバーへの接続を遮断している可能性があります。
MySQL の設定ファイルには、接続に関する設定が記載されています。
補足
- このエラーは、さまざまな原因によって発生する可能性があります。
- 上記の手順で問題が解決しない場合は、専門家に相談することをおすすめします。
import mysql.connector
# 接続設定
host = "localhost"
port = 3306
user = "root"
password = "password"
database = "test"
# 接続
connection = mysql.connector.connect(
host=host,
port=port,
user=user,
password=password,
database=database,
)
# カーソルを取得
cursor = connection.cursor()
# クエリを実行
cursor.execute("SELECT * FROM users")
# 結果を取得
results = cursor.fetchall()
# 結果を出力
for row in results:
print(row)
# 接続を閉じる
cursor.close()
connection.close()
このコードを実行するには、以下の準備が必要です。
- Python 3 がインストールされていること
- MySQL Connector Python がインストールされていること
- データベースとユーザーが作成されていること
実行方法
- 上記のコードをファイルに保存します。
- コマンドプロンプトまたはターミナルを開き、ファイルを保存したディレクトリに移動します。
- 以下のコマンドを実行します。
python file_name.py
(1, 'user1', 'password1', 'email1')
(2, 'user2', 'password2', 'email2')
このコードは、基本的な操作の例です。
- 他の操作を行う場合は、MySQL Connector Python のドキュメントを参照してください。
- このコードは、サンプルコードです。
- 本番環境で使用する場合は、適切なセキュリティ対策を講じてください。
ローカル MySQL サーバーに接続する他の方法
コマンドラインツール
MySQL のコマンドラインツールである mysql
を使用して、サーバーに接続できます。
mysql -h localhost -u root -p
オプション
-h
: 接続先ホスト名-u
: ユーザー名-p
: パスワード
MySQL Workbench は、GUI で MySQL サーバーを管理するためのツールです。
MySQL Workbench ダウンロード: https://dev.mysql.com/downloads/workbench/
その他の GUI ツール
MySQL Workbench 以外にも、Navicat や Sequel Pro など、さまざまな GUI ツールがあります。
- 上記以外にも、さまざまな方法でローカル MySQL サーバーに接続できます。
- 詳細については、MySQL のドキュメントを参照してください。
mysql sockets