以默认的3306 端口为例,需要满足以下条件:

  1. 确保你的主机相关端口能访问,防火墙放开 3306 端口的远程访问,如果你用的是云服务,比如阿里云 ECS,需要修改你的 ECS 的安全策略组,放开对应端口的访问限制;
  2. 确保你的 MySQL 配置绑定的IP是能够在远程访问的IP,Ubuntu 20.04 为例,默认的配置文件在
    /etc/mysql/mysql.conf.d/mysqld.cnf 将 bind-address 改为 0.0.0.0 即可;
  3. 确保你有一个可以远程访问的账户,MySQL 8.0 创建远程账户:
create user `user001`@'%' identified by 'YourPassword@123';
grant all privileges on *.* to `user001`@'%' with grant option;
flush privileges;

很多人 1、3 两条都搞定了,也测试了 telnet 主机IP 3306 能通,但第 2 步忽略了。

注意第二步修改后需要重启:

service mysql restart

修改后查看确认一下:

cat /etc/mysql/mysql.conf.d/mysqld.cnf | grep bind
bind-address        = 0.0.0.0
mysqlx-bind-address    = 127.0.0.1

标签: mysql