外部ホストからMySQLへ接続できるように設定をする

外部ホストのコマンドプロンプトからコマンドラインでMySQLへ接続しようとしたら以下のエラーメッセージが出力された。

> mysql.exe -u user_name -p -h ip_address
Enter password: ********
ERROR 1045 (28000): Access denied for user 'user_name'@'ip_address' (using password: YES)

環境
外部ホスト:Windows10
MySQLサーバ:CentOS7, MySQL5.7

原因
MySQLは初期設定では外部ホストより接続できる設定になっていないため。

対処
GRANT文を用いて外部ホストより接続できるような設定を行う。
(追記)
CREATE USER文でユーザを追加しても外部ホストから接続可能(むしろ、CREATE USERしてからGRANTするのが正しい)。

やりかた

# CentOS7からMySQLサーバに接続する。
mysql -u root -p

# GRANT文で外部ホストのIPアドレスからのアクセスを許可するユーザを追加する。
# もしくはCREATE USER文で外部ホストのIPアドレスを指定したユーザを追加する。
GRANT ALL ON database_name.* TO 'user_name'@'ip_address' IDENTIFIED BY 'password';
CREATE USER 'user_name'@'ip_address' IDENTIFIED BY 'password';

# (おまけ)MySQLに接続できないようにする。
DROP USER 'user_name'@'ip_address';

コメント

タイトルとURLをコピーしました