mysql安装完成后配置远程访问权限流程

2026-02-02 00:00:00 作者:P粉602998670
MySQL远程访问需依次配置:1.创建'root'@'%'用户并授权;2.放行33

06端口防火墙;3.将bind-address改为0.0.0.0;4.MySQL 8.0+需处理caching_sha2_password兼容性问题。

修改 MySQL 用户的 host 值为 %

MySQL 默认安装后,root 用户的 host'localhost',只允许本机连接。远程访问需要将其改为 '%'(匹配任意主机),或指定 IP 更安全。

  • 先用本地命令行登录:
    mysql -u root -p
  • 执行授权语句(注意:MySQL 8.0+ 不再支持直接 UPDATE mysql.user):
    CREATE USER 'root'@'%' IDENTIFIED BY 'your_password';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
  • 刷新权限:
    FLUSH PRIVILEGES;
  • 验证修改是否生效:
    SELECT user, host FROM mysql.user WHERE user = 'root';
    ——应看到 host 列包含 %

检查并关闭防火墙或放行 3306 端口

即使 MySQL 允许远程连接,系统防火墙也可能拦截请求。常见错误现象是“Connection refused”或“timeout”,但 telnet your_ip 3306 不通。

  • Ubuntu/Debian:
    sudo ufw allow 3306
    或临时禁用:
    sudo ufw disable
  • CentOS/RHEL 7+:
    sudo firewall-cmd --permanent --add-port=3306/tcp
    sudo firewall-cmd --reload
  • Windows Server:在“高级安全 Windows 防火墙”中新建入站规则,开放 TCP 3306

确认 MySQL 绑定地址是否监听外部 IP

MySQL 默认可能只绑定 127.0.0.1,导致即使用户和防火墙都配对了,仍无法远程连接。

  • 编辑配置文件:
    /etc/mysql/mysql.conf.d/mysqld.cnf
    (Ubuntu)或
    /etc/my.cnf
    (CentOS)
  • 查找 bind-address 行,改为:
    bind-address = 0.0.0.0
    (监听所有 IPv4 接口)
    或更安全地指定内网 IP,如:
    bind-address = 192.168.1.100
  • 重启服务:
    sudo systemctl restart mysql
    (Ubuntu)或
    sudo systemctl restart mysqld
    (CentOS)
  • 验证监听状态:
    sudo netstat -tuln | grep :3306
    ——输出中应含 *:3306 或具体 IP:3306,而非仅 127.0.0.1:3306

MySQL 8.0+ 的密码认证插件兼容性问题

MySQL 8.0 默认使用 caching_sha2_password 插件,部分旧客户端(如某些 Python pymysql 版本、Navicat 旧版)不支持,会报错 Authentication plugin 'caching_sha2_password' cannot be loaded

  • 临时兼容方案(不推荐长期使用):
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
    FLUSH PRIVILEGES;
  • 更稳妥做法是升级客户端驱动,或连接时显式指定插件(如 Python 中加参数 auth_plugin='caching_sha2_password'
  • 检查当前插件:
    SELECT user, host, plugin FROM mysql.user WHERE user = 'root';

MySQL 远程访问失败时,90% 的情况卡在 bind-address、防火墙、用户 host 三者之一;密码插件问题多出现在 MySQL 8.0+ 与老工具混用场景,容易被忽略。

猜你喜欢

联络方式:

400 9058 355

邮箱:8955556@qq.com

Q Q:8955556

微信二维码
在线咨询 拨打电话

电话

400 9058 355

微信二维码

微信二维码