MySQLの8は、リモート・ホストがローカル・サーバーを接続することができます
環境情報
Ubuntuのバージョン情報:
$ lsb_release --all
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.3 LTS
Release: 18.04
Codename: bionic
MySQLのバージョン情報:
$ mysql --version
mysql Ver 8.0.19 for Linux on x86_64 (MySQL Community Server - GPL)
新しいアカウント、権限を割り当て
デフォルトでは、MySQLはローカル接続のみを許可する、表示mysql
データベースのuser
テーブルを、あなたはすべてのユーザがローカルホストできますサーバーに接続見ることができます。
mysql> select host, user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+------------------+
4 rows in set (0.00 sec)
私たちは、新しいアカウントを作成することができます。
mysql> create user 'root'@'192.168.1.4' // 'user_name'@'host_name'
-> identified by 'password'; // 密码
Query OK, 0 rows affected (0.09 sec)
上記のコマンドは、言った:アカウントを作成し、ユーザー名root
、パスワードはpassword
、IP許可する192.168.1.4
ホストマシンのMySQLサーバに接続します。
新しいアカウントをに追加されmysql
たデータベースuser
テーブル:
mysql> select host,user from user;
+-------------+------------------+
| host | user |
+-------------+------------------+
| 192.168.1.4 | root |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-------------+------------------+
5 rows in set (0.00 sec)
アカウントに[割り当て権限:
mysql> GRANT ALL // 所有权限
-> ON *.* // 任意数据库的任意表
-> TO 'root'@'192.168.1.4'; // 给那一个账户
Query OK, 0 rows affected (0.11 sec)
ポートを開きます
ファイアウォールのステータスを確認します。
$ sudo ufw status
[sudo] password for mk:
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
私たちは、TCPポート3306プロトコルを開く必要があります。
$ sudo ufw allow 3306/tcp
Rule added
Rule added (v6)
ファイアウォールルールを再ロードします。
$ sudo ufw reload
Firewall reloaded
再びファイアウォールの状態を確認します。
$ sudo ufw status
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
3306/tcp ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
3306/tcp (v6) ALLOW Anywhere (v6)
上記の操作が完了した後、指定されたIPリモートクライアントは、アカウントを通じてマシンMySQLサーバに接続することができます。