MySQL8にリモート接続する方法
こんにちはHITS代表の原田です。
先程公開した『.NetCore2.2(ASP)の実行環境をDocker(CentOS7 + MySql + Apache)で作成してみた。』でMySQLへリモート接続するために必要な設定があったので追記しておきます。
リモート接続用のユーザーの作成
$ mysql -p
Enter password:rootのパスワードを入力
# ユーザーの確認
mysql> select user,host from mysql.user;
+------------------+-------------+
| user             | host        |
+------------------+-------------+
| mysql.infoschema | localhost   |
| mysql.session    | localhost   |
| mysql.sys        | localhost   |
| root             | localhost   |
+------------------+-------------+
# hostがすべてlocalhostのユーザーしかいないのでlocalhostからしかアクセスできない。
# リモート接続ユーザー(root)の追加
# %はワイルドカードです。192.168.%とすると192.168のIPからのみ接続を受付ける設定になります。
mysql> create user 'root'@'%' identified  by 'パスワード';
# 権限の設定
# *.*はDB.Tableなので*.*は全DBの全テーブルに全権限(all)があるという意味です。
mysql> grant all on *.* to 'root'@'%' with grant option;
# 権限の反映
mysql> flush privileges;
docker-compose.ymlの設定変更
ポートとDBデータの永続化を追加しました。
  dotnet:
    container_name: dotnet
    build:
      context: ./dotnet
      dockerfile: Dockerfile
    restart: always
    privileged: true
    ports:
      - 8082:80
      - 3306:3306                               # これを追加
    volumes:
      - dotnet_httpd:/etc/httpd/conf.modules.d
      - dotnet_web:/var/www/dotnet
      - dotnet_services:/dotnet/services
      - dotnet_mysql:/var/lib/mysql             # これを追加
dotnet_mysqlに対応する設定の追記と、実際のフォルダの作成とfirewallでポートを開けるのを行った後に、docker-composeで再起動すればリモート接続の準備は完了です。
何かコメントがあればお気軽にどうぞ。
あなたの猫の手になりたいハラダITSupport代表の原田でした。