状態を確認する
netstat -ant
の結果を見る。
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
これがあると、MySQLの接続ポート「3306」が localhostからのみ接続を受け付ける様になってしまう。
設定を外す必要あり。
設定が可能なファイルが3ファイル存在する可能性あり。
- /etc/mysql/my.cnf
- /etc/mysql/conf.d/mysql.cnf
- /etc/mysql/mysql.conf.d/mysqld.cnf
調査したところ、3番目の「/etc/mysql/mysql.conf.d/mysqld.cnf」に
「bind-address」という設定項目がある。
これをコメントアウト。
MySqlを再起動して、再度「netstat -ant」を実行すると
tcp6 0 0 :::3306 0:0:0:* LISTEN
となっている。
続いて、MySQLに接続用のアカウント設定。一旦普通にMySQLへコマンドラインで接続する
ユーザ作成のコマンド「create user」を実行
create user 'ユーザ名'@'接続許可ホスト XXX.XX.XX.X' identified by 'パスワード';
とする。
接続許可ホストには、ホスト名や'172.21.0.1'とか'172.21.0.%'とか指定する。
作成に成功したら、『権限付与』の「grant」を実行
grant all on *.* to '上で作ったユーザー<'ユーザ名'@'XXX.XX.XX.X'>';
成功したら、確認
ユーザ
select user,host from mysql.user;
権限
show grants for 'ユーザ名'@'XXX.XX.XX.X';
以上。