2022年7月9日土曜日

MySQL で IP ベースでアクセスできるようにする方法

MySQL で IP ベースでアクセスできるようにする方法

概要

デフォルトだと localhost からのみアクセスできます
-h を指定してホスト名や IP ベースでアクセスできるようにするにはユーザを追加する必要があります

環境

  • macOS 11.6.7
  • MySQL 8.0.29

IP ベースでアクセス可能なユーザを新規に作成する

権限を追加で付与するわけではなくユーザを新規で追加する必要があります

  • CREATE USER 'user01'@'192.168.1.2' IDENTIFIED BY 'xxx';
  • GRANT ALL ON *.* TO 'user01'@'192.168.1.2' WITH GRANT OPTION;
  • FLUSH PRIVILEGES;

MySQL が IP で LISTEN しているか確認する

デフォルトだと localhost のみ LISTEN しているので IP で LISTEN するように変更します

  • netstat -an | grep 3306
tcp4       0      0  127.0.0.1.3306         *.*                    LISTEN
  • vim ~/.my.cnf
[mysqld]
bind-address = 127.0.0.1,192.168.1.2
  • brew services stop mysql
  • brew services start mysql
  • netstat -an | grep 3306
tcp4       0      0  192.168.1.2.3306       *.*                    LISTEN
tcp4       0      0  127.0.0.1.3306         *.*                    LISTEN

動作確認

ユーザの一覧を表示して追加した IP からのアクセスできるレコードがあることを確認します

  • SELECT Host,User FROM mysql.user \G

付与した権限情報は以下で確認できます

  • SHOW GRANTS FOR 'user01'@'192.168.1.2' \G

あとは mysql クライアントで -h で IP を指定して接続できることを確認します

  • mysql -u user01 -h 192.168.1.2 -p

0 件のコメント:

コメントを投稿