修改MySQL配置文件
Ubuntu系统中MySQL的默认配置文件路径为/etc/mysql/mysql.conf.d/mysqld.cnf,我们需要将绑定地址从本地回环地址修改为允许所有地址访问。

首先使用管理员权限打开配置文件:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到文件中bind-address配置项,默认值为127.0.0.1,将其修改为0.0.0.0,修改后内容如下:
bind-address = 0.0.0.0
修改完成后保存退出,然后重启MySQL服务使配置生效:
sudo systemctl restart mysql
配置MySQL用户远程权限
仅修改配置文件还不够,还需要为允许远程访问的MySQL用户授予对应权限,默认root用户仅允许本地登录,我们可以新建专用远程用户或者修改现有用户的权限。
首先登录MySQL数据库:
mysql -u root -p
输入root用户密码后进入MySQL命令行,接着执行以下SQL语句创建允许所有IP远程访问的用户,用户名为remote_user,密码为your_password,可以根据实际需求调整:
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
如果只需要允许特定IP段访问,可以将%替换为对应的IP地址,例如允许192.168.1.0/24网段访问,用户创建语句可以改为:
CREATE USER 'remote_user'@'192.168.1.%' IDENTIFIED BY 'your_password';
配置Ubuntu防火墙规则
Ubuntu系统默认使用ufw防火墙,如果防火墙处于开启状态,需要放行MySQL默认的3306端口,否则远程连接请求会被防火墙拦截。
首先检查ufw防火墙状态:
sudo ufw status
如果显示Status: active,说明防火墙处于开启状态,执行以下命令放行3306端口:
sudo ufw allow 3306/tcp sudo ufw reload
如果需要限制仅特定IP可以访问3306端口,可以使用以下命令:
sudo ufw allow from 192.168.1.100 to any port 3306 sudo ufw reload
验证远程访问配置
配置完成后,可以在另一台设备的终端中使用mysql客户端尝试连接,连接命令如下:
mysql -h 你的Ubuntu服务器IP -u remote_user -p
输入对应用户的密码后,如果能够成功进入MySQL命令行,说明远程访问配置成功。
常见问题说明
- 如果连接时提示
Can't connect to MySQL server,先检查Ubuntu服务器IP是否可达,再确认MySQL服务是否正常运行,防火墙规则是否生效。 - 如果提示
Access denied for user,检查用户权限配置是否正确,是否执行了FLUSH PRIVILEGES刷新权限。 - 生产环境中不建议使用
%允许所有IP访问,应根据实际需求限制访问来源IP,同时设置复杂度高的用户密码,避免数据库被非法访问。