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 用户远程访问是高风险操作!
生产环境必须:

  1. 使用 12 位以上强密码(字母+数字+符号组合)
  2. 限制访问 IP 范围(非 %
  3. 定期审计数据库访问日志

你可能感兴趣的:(MySQL允许root用户远程连接)