一、放行端口

sudo ufw allow 3306
sudo ufw reload
如果是云服务器,需要在控制台放行端口

二、修改配置文件

1、MySQL配置文件路径(ubuntu)

nano /etc/mysql/mysql.conf.d/mysqld.cnf
# 找到bind-address = 127.0.0.1并注释

2、 MariaDB配置文件路径(centos)

nano /etc/my.cnf
# 在配置文件中找到[mysqld]部分,并添加或修改成以下行:
# [mysqld]
# bind-address=0.0.0.0
配置路径可能不同

三、重启MySQL

sudo systemctl restart mysql

四、添加远程登录用户

1、检查用户

SELECT host FROM mysql.user WHERE User = 'root';

如果只看到带有 localhost127.0.0.1 的结果,这将无法从外部连接。如果您看到其他 IP 地址,但没有您连接的地址,这也是无法连接的。

2、添加用户

可以允许指定ip地址的用户以root用户身份登录

CREATE USER 'root'@'ip_address' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'ip_address';

允许任何IP地址的用户以root用户身份登录

CREATE USER 'root'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

3、 刷新全新

FLUSH PRIVILEGES;