MySQLリモート接続を実現する手順
MySQLのリモート接続について、調査や設定の過程をまとめました。Ubuntuで設置されたMySQL 8.0を使用している環境で、設定手順を説明します。
正しいユーザー権限を付与する
MySQL 8.0以降の環境では、旧来の「GRANT ... IDENTIFIED BY」といった構文が使用できません。このため、下記のように新しい構文を使用します。
現存ユーザーの権限を修正
-
MySQLにログイン
mysql -u root -p
-
ユーザーのパスワードを変更し、リモート接続を許可
ALTER USER 'username'@'localhost' IDENTIFIED BY 'your_password';
CREATE USER 'username'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES; -
権限が正しく設定されたか確認
SELECT user, host FROM mysql.user WHERE user = 'username';
MySQLサーバーのリモート接続許可
-
MySQL設定ファイルの修正 MySQLの接続は、デフォルトで「127.0.0.1」にバインドされています。これを「0.0.0.0」に変更する必要があります。
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
下記を確認し、修正:
bind-address = 0.0.0.0
-
MySQLサービスのリスタート
sudo systemctl restart mysql
ファイアウォールの設定
ファイアウォールでMySQLのポート接続を許可する必要があります。
-
UFWの設定 現在のルールを確認:
sudo ufw status