MySQL允许root用户远程连接
注意:在实际生产环境中,允许root用户从任意主机(‘%’)连接存在安全风险,建议使用强密码并限制访问IP,或者创建具有必要权限的单独用户用于远程连接。
MySQL 配置远程连接指南
1. 登录 MySQL 服务器
mysql -u root -p
# 输入 root 密码后进入 MySQL 命令行
2. 切换到 mysql 系统数据库
USE mysql;
3. 修改 root 用户访问权限
UPDATE user SET host = '%' WHERE user = 'root';
重要说明:
host=‘%’ 允许所有 IP 远程访问(存在安全风险)
生产环境建议指定特定 IP,如 host=‘192.168.1.100’
若需保留本地访问,需同时保留 host=‘localhost’ 的记录
4. 刷新权限使配置生效
FLUSH PRIVILEGES;
5. 退出 MySQL
EXIT;
验证远程连接
在其他机器上使用客户端连接:
mysql -h [服务器IP] -u root -p
安全加固建议
1.创建专用账号(推荐方案)
CREATE USER 'remote_user'@'特定IP' IDENTIFIED BY '强密码';
GRANT 所需权限 ON 数据库.* TO 'remote_user'@'特定IP';
FLUSH PRIVILEGES;
2.防火墙限制
# 仅允许信任 IP 访问 3306 端口
sudo ufw allow from 信任IP to any port 3306
3.修改 MySQL 默认端口
编辑 /etc/mysql/mysql.conf.d/mysqld.cnf:
[mysqld]
port = 新端口号
常见错误排查
1.错误 1130:未正确设置 host 或未刷新权限 → 重复步骤 3-4
2.错误 2003:防火墙未开放端口 → 检查防火墙设置
3.错误 1045:用户名/密码错误 → 使用 ALTER USER 重置密码
⚠️ 安全警告:
允许 root 用户远程访问是高风险操作!
生产环境必须:
- 使用 12 位以上强密码(字母+数字+符号组合)
- 限制访问 IP 范围(非
%
)- 定期审计数据库访问日志