You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在开启SSL的MySQL服务器中豁免本地用户的SSL连接要求

MySQL 5.7 豁免本地localhost用户SSL强制连接要求的方案

方案1:使用本地Unix套接字连接(无需修改全局配置,优先推荐)

require_secure_transport=ON的强制SSL限制仅作用于TCP协议连接,本地使用Unix套接字(Windows下为命名管道/共享内存)的连接不受该规则约束:

  • 本地执行mysql命令时指定host为localhost,默认会自动走Unix套接字连接,无需加SSL参数即可正常登录
  • 确认连接方式:登录后执行status命令,查看Connection字段,显示Localhost via UNIX socket即为套接字连接
  • 若之前本地连接强制添加了--ssl-mode=REQUIRED参数,移除后即可使用非SSL连接

方案2:允许本地TCP连接豁免SSL(适用于必须用127.0.0.1走TCP连接的场景)

如果需要允许本地127.0.0.1的TCP连接不用SSL,可通过关闭全局SSL强制+给远程用户单独配置SSL要求实现:

  1. 修改MySQL配置文件my.cnf(Windows为my.ini),将参数调整为:
    require_secure_transport = OFF
    
    保存后重启MySQL服务生效
  2. 给所有远程访问的用户单独设置强制SSL要求,SQL命令示例:
    -- 替换为实际的远程用户名和允许访问的IP段
    ALTER USER 'remote_user'@'192.168.%' REQUIRE SSL;
    -- 若远程用户用%通配所有IP,写法如下
    ALTER USER 'remote_user'@'%' REQUIRE SSL;
    
  3. 给本地localhost用户设置无需SSL:
    -- 替换为实际的本地用户名
    ALTER USER 'local_user'@'localhost' REQUIRE NONE;
    ALTER USER 'local_user'@'127.0.0.1' REQUIRE NONE;
    
  4. 刷新权限使配置生效:
    FLUSH PRIVILEGES;
    

配置验证

  • 远程连接验证:远程主机执行mysql -u remote_user -p -h 服务器IP,不加SSL参数会被拒绝,添加--ssl-mode=REQUIRED可正常登录
  • 本地连接验证:本地执行mysql -u local_user -p -h 127.0.0.1,无需添加SSL参数即可正常登录

注意事项

  • 调整配置前可先执行SELECT user,host,ssl_type FROM mysql.user;查看现有用户的SSL要求,ssl_type为ANY代表强制SSL,NONE代表无SSL要求
  • 生产环境修改用户权限前建议先备份mysql.user表,避免误操作导致访问异常

内容的提问来源于stack exchange,提问作者Haizhou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 02:06:03