无法通过SSMS连接AWS RDS MySQL 8.0实例求助
问题原因分析
- SSMS原生仅支持SQL Server连接,无法直接对接MySQL数据库,必须依赖第三方驱动(如MySQL ODBC驱动)才能建立连接,你当前大概率未安装适配MySQL 8.0的对应驱动。
- 端口混淆:MySQL默认监听3306端口,1433是SQL Server的默认端口,用1433连接MySQL实例完全不符合逻辑,必然失败;且SSMS中指定MySQL端口的方式错误,不是在URL后加
;3306,需通过驱动配置界面单独指定端口。 - 认证方式不兼容:MySQL 8.0默认使用
caching_sha2_password认证插件,旧版本的MySQL驱动不支持该认证方式,会直接导致连接失败。 - 关于仅能通过3306连接:AWS RDS MySQL实例默认端口就是3306,除非你在创建实例时手动指定了其他端口,否则只会在3306端口提供服务,这是MySQL的标准默认端口,属于正常现象。
解决办法
安装适配MySQL 8.0的ODBC驱动
下载并安装MySQL ODBC 8.0 Unicode Driver(需匹配你的操作系统位数),确保驱动版本与MySQL 8.0兼容,支持caching_sha2_password认证。通过SSMS的ODBC数据源连接MySQL RDS
- 打开SSMS,点击「连接」→「数据库引擎」旁边的下拉箭头,选择「其他数据源」。
- 在「连接到服务器」窗口中,选择「ODBC Driver 8.0 for MySQL」作为数据源。
- 填写连接参数:
- 服务器名称:填写AWS RDS MySQL实例的端点地址(无需附加端口)。
- 端口:单独填写3306。
- 用户名/密码:填写你创建RDS实例时设置的主用户名和密码。
- 勾选「记住密码」(可选),点击「连接」。
验证驱动与认证方式匹配
如果连接时仍提示认证错误,可临时修改MySQL用户的认证方式为mysql_native_password(仅作测试,不推荐长期使用):ALTER USER 'your_username'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES;执行后再尝试连接,若成功则说明是驱动不支持
caching_sha2_password,建议优先升级驱动而非修改认证方式。确认本地机器网络权限
虽然同一IP来源的Ubuntu能连接,但SSMS所在的本地机器需确保防火墙未拦截3306端口的出站请求(若为同一机器则可忽略此步)。
内容的提问来源于stack exchange,提问作者Lucas
相关产品推荐
相关产品推荐

