答案是配置 MySQL 用户权限、修改绑定地址为 0.0.0.0、开放 防火墙 3306 端口 。具体需创建允许远程连接的用户,编辑mysqld.cnf 配置文件,重启服务并设置 ufw 防火墙规则,最后通过 mysql -h IP - u 用户 - p 连接,生产环境应限制 IP 以确保安全。

要实现 Linux 下 MySQL数据库 的远程访问,关键在于正确配置 MySQL 用户权限和服务器网络设置。默认情况下,MySQL 只允许本地连接,需手动调整才能让外部主机访问。
开启 MySQL 远程访问权限
MySQL 通过用户账户的主机名限制登录来源。要允许远程连接,需创建或修改用户,使其可以从非本地 IP 连接。
操作步骤:
- 登录 MySQL:使用 root 账户进入数据库
mysql -u root -p - 授权远程用户:
允许特定用户从任意主机连接(不推荐生产环境)
GRANT ALL PRIVILEGES ON *.* TO ‘username’@’%’ IDENTIFIED BY ‘password‘;
或仅允许来自某个 IP 的连接(更安全)
GRANT ALL PRIVILEGES ON *.* TO ‘username’@’192.168.1.100’ IDENTIFIED BY ‘password’; - 刷新权限:
FLUSH PRIVILEGES;
修改 MySQL 绑定地址
MySQL 默认监听 127.0.0.1,需更改 配置文件 以监听公网或所有 接口。
编辑配置文件:
- 打开 MySQL 配置文件(路径可能为 /etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/my.cnf)
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf - 找到 bind-address 行,将其改为:
bind-address = 0.0.0.0
这表示监听所有网络接口。 - 保存并重启 MySQL 服务:
sudo systemctl restart mysql
配置 防火墙 允许 3306端口
即使 MySQL 允许远程连接,系统防火墙也可能阻止外部访问。
使用 ufw 开放端口:
- 允许 MySQL 默认端口:
sudo ufw allow 3306 - 更安全的做法是仅允许特定 IP:
sudo ufw allow from 192.168.1.100 to any port 3306 - 查看规则是否生效:
sudo ufw status
完成上述配置后,即可从远程主机使用客户端连接 MySQL:
mysql -h your_server_ip -u username -p
基本上就这些。只要权限、配置文件和防火墙都设置正确,远程访问就能正常工作。注意生产环境应避免使用 % 通配符开放所有 IP,尽量限定具体来源 IP,保障数据安全。