首先需要确保 MySQL 服务器的防火墙对异地访问放行了相应端口,是否开放了端口(3306)可以通过在异地电脑使用 TCP 连接工具进行测试:
telnet 192.168.0.133 3306
如果无法正常连接,大概率是防火墙的问题,需要修改防火墙设置以放开端口。
关于不同平台的服务器如何修改防火墙设置以放开特定端口,可以查看这篇。
仅放开端口是不够的,默认情况下 MySQL 应用仅会监听本地客户端的连接,因此还需要修改 MySQL 配置文件,让 MySQL 应用监听其它 IP 的连接请求。
需要在 MySQL 配置文件中添加:
bind-address = 0.0.0.0
不同平台的 MySQL 配置位置:
-
Windows:安装目录的 my.ini 文件。
-
RHEL 9:
/etc/my.cnf.d/mysql-server.cnf
-
Ubuntu:
/etc/mysql/mysql.conf.d/mysqld.cnf
修改后需要重启服务以让配置生效。
通常 MySQL 出于安全考虑,默认的超级管理员 root 帐号是不允许异地登录的,因此我们还需要创建一个用于异地登录的 MySQL 帐号。
执行以下 SQL 以创建帐号:
mysql> create user 'icexmoon'@'%' identified by 'Mysql@123';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all on *.* to 'icexmoon'@'%';
Query OK, 0 rows affected (0.01 sec)
mysql> show grants for 'icexmoon'@'%';
配置好后可以用异地电脑的 MySQL 客户端测试连接:
mysql -h192.168.0.46 -uicexmoon -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.29 MySQL Community Server - GPL
The End.
文章评论