端くれプログラマの備忘録 MySQL [MySQL] CentOSのMySQLへ外部から接続する

[MySQL] CentOSのMySQLへ外部から接続する

アクセス許可

# cd /etc
# vi hosts.allow
mysqld : <アクセス元IP>

ポートを開く

# firewall-cmd --permanent --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: ssh dhcpv6-client http https smtp
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
# firewall-cmd --add-service=mysql --permanent
(ちなみにポートを閉じる場合)
# firewall-cmd --remove-service=ssh --permanent
# firewall-cmd --reload

mysqldへのアクセス許可

# cd /etc/my.cnf.d
# vi server.cnf
#
# Allow server to accept connections on all interfaces.
#
#bind-address=0.0.0.0
bind-address=0.0.0.0 コメント取る

mysqlユーザ設定

$ mysql -u <管理者ユーザー> -p
Password: <管理者パスワード>
mysql> SELECT user,host FROM mysql.user;
mysql> GRANT ALL ON <DB名>.* TO <ユーザー>@"<IPアドレス>" identified by '<パスワード>' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
(確認)
mysql> SELECT user,host FROM mysql.user;

リモートマシンからアクセスできることを確認

$ mysql -u <ユーザー> -p -h <サーバー> --port 3306 <DB名>
Enter password: <パスワード>
mysql> show databases;

参考サイト

MySQL で特定の IP アドレスからのアクセスを許可する – Qiita
https://qiita.com/u-dai/items/b360a337b5001778699e

MySQLに外部サーバーからアクセスする – 発声練習
http://next49.hatenadiary.jp/entry/20120112/p1