我在 Amazon RDS 上创建了一个 mysql 实例,它为我提供了以下设置:
我试图通过 MySQL Workbench 连接到这个 mysql 服务器,它总是说 SSH 隧道没有经过身份验证。
我试图通过命令提示符连接到服务器,它工作正常。这是我使用的命令:
mysql -h ['Endpoint' from setting] --ssl_ca=C:\Users\Jason\Downloads\mysql-ssl-ca-cert.pem -P 3306 - u ['Username' from setting] -p
这提示我输入密码,它工作正常!
现在,当我使用 MySQL Workbench 尝试它时,我收到错误,它在日志中显示:
error: [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
19:17:39 [ERR][ SSH tunnel]: Authentication error opening SSH tunnel: Authentication error, unhandled exception caught in tunnel manager, please refer to logs for details
这是设置:
SSH HostName: ['Endpoint' from settings]
SSH Username: ['Username' from settings]
SSH Password: password
SSH Key File: C:\Users\Jason\Downloads\mysql-ssl-ca-cert.pem
MySQL HostName: ['Endpoint' from settings]
MySQL Server Port: 3306
Username: ['Username' from settings]
Password: password same as SSH password
Default Schema: ['DB Name' from settings]
需要注意的一点是,当我能够通过 Workbench 成功连接到服务器时,我在服务器上运行了以下命令。
GRANT USAGE ON *.* TO 'username'@'%' REQUIRE SSL;
此外,我在 RDS 上的“数据库安全组”下提供了我的本地 IP 地址 (CIDR/IP) 访问权限。