#【経緯】
bitnamiでredmineの構築してるサーバがあって、そこで使用しているmysqlを外部からも別ユーザで使いたい。
#【前提】
・MySQLが既にインストール済みである事
#【やること】
1.MySQLでアクセス権限を持ったユーザを作成
外部からアクセスできる専用ユーザを作成
grant all privileges on [DB名].* to [ユーザ名]@"%" identified by '[パスワード]' with grant option;
※特定のIPのみから接続させたい場合は「@"%"」の%を変更。
2.MySQLのIP制限を外す
MySQLの設定『mysqld.cnf』から、IP制限をコメントアウト
# bind-addressをコメントアウト
bind-address = 127.0.0.1
※自分の環境(bitnami経由redmine)では、『my.cnf』だった。
3.MySQL設定反映の為、再起動
mysql restart
※自分の環境(bitnami経由redmine)では、『ctlscript.sh restart mysql』だった。
4.制限外れたか確認
netstat -ant
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
※上記ならOK。
5.CentOSのファイヤーウォールにmysqlの外部アクセスを許可する
# firewallにmysqlを追加
firewall-cmd --add-service=mysql --zone=public --permanent
# 内容確認(mysqlが表示されていればOK)
firewall-cmd --list-services --zone=public --permanent
dhcpv6-client ssh mysql
# firewallをリロードして設定を有効化
firewall-cmd --reload
6.クライアントから接続確認
mysql -h [IPアドレス] -u [ユーザID] -p
【終わりに】
本当は接続元のIP制限を行ったほうがセキュリティ的に良いのだが、
今回は学習用のデータを置く事が目的だったので、IDとパスワードさえわかればアクセスできるようにしました。
※ファイヤーウォール設定のコマンドに-が足りなくて詰まったのは秘密だヨ!