Azure部署项目遇MySQL错误SQLSTATE[HY000][3159]求助
解决Azure MySQL "Connections using insecure transport" 错误
问题原因
你的Azure MySQL服务器开启了--require_secure_transport=ON强制安全传输规则,但Web应用未通过SSL加密连接数据库,因此触发该错误。
解决方案步骤
1. 语句执行位置
完全可以在MySQL Workbench中执行该查询,操作流程:
- 使用服务器管理员账号(或拥有
ALTER USER权限的账号)连接到Azure MySQL服务器 - 打开查询编辑器窗口,输入修改语句后执行
2. <tls_option> 替换指南
针对Azure MySQL的常规Web应用场景,首选SSL选项,它仅要求连接使用SSL加密,无需额外证书验证,是最适配的设置。
示例语句(替换你的实际用户名和主机/IP):
ALTER USER 'your_app_user'@'%' REQUIRE SSL;
其他选项说明(仅特殊安全场景使用):
X509: 要求客户端提供有效的X509证书,用于高安全需求场景CIPHER 'cipher': 指定连接使用特定加密套件ISSUER 'issuer'/SUBJECT 'subject': 要求客户端证书匹配指定的颁发者/主题信息
3. 后续配置验证
执行完用户修改后,需要确保Web应用的数据库连接字符串添加SSL强制配置,比如:
- PHP PDO: 追加
;sslmode=required - Python SQLAlchemy: 追加
?ssl=true - .NET: 设置
SslMode=Required
内容的提问来源于stack exchange,提问作者gamers06m
相关产品推荐
相关产品推荐

