我在AWS上创建了一个MysQL RDS实例。 我可以使用我自己的用户连接到MysQL,用户是创建实例的用户:
mysql -h aws-host -P 3306 -u MyUser -p
我需要让已经在AWS上注册的其他用户访问Mysql。
手动:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.DBAccounts.html
用户创建正在运行,但是当我从用户注销并尝试再次使用新用户进行日志记录时,它无效。
由于身份验证插件错误,我遇到了用户无法连接到Mysql的问题。
命令:
mysql -h aws-host -P 3306 -u newUser -p
当我输入密码时,我得到了:
Error: ERROR 2059 (HY000): Authentication plugin 'mysql_clear_password' cannot be loaded: plugin not enabled
密码是正确的,因为它是我用来登录aws的那个用户并启用了IAM DB身份验证,我认为IM和RDS应该共享密码或者我做错了什么?
答案 0 :(得分:1)
问题的原因是数据库身份验证令牌和连接字符串中缺少SSL。使用IAM数据库身份验证时,使用安全套接字层(SSL)
加密进出数据库的网络流量使用“generate-db-auth-token”生成数据库身份验证令牌 SSL要求使用可用的根证书here。一旦文件在计算机上可用,就可以使用以下语法进行身份验证:
RDSHOST="myinstance.***********.rds-us-east-1.amazonaws.com"
TOKEN="$(aws rds generate-db-auth-token --hostname $RDSHOST --port 3306 --username test )"
mysql --host=$RDSHOST --port=3306 --enable-cleartext-plugin --ssl-ca=[full path]rds-combined-ca-bundle.pem --ssl-mode=VERIFY_IDENTITY --user=test --password=$TOKEN
的官方文档
答案 1 :(得分:0)
就我而言,我必须从mysqlworkbench的SSL选项卡下将SSL要求更改为no,然后它就消失了。