我在mysql_native_password 5.7和MySQL 8服务器上为'joe'@'%‘输入了相同的密码和相同的MySQL插件,用于这些测试。
当我想以普通用户的身份连接时,MySQL 5.7中的"mysql“二进制文件授予"-p”荣誉:
# on the MySQL 5.7 localhost
$ mysql -u joe -h localhost -P 3306 -p
Enter password:
# on the MySQL 5.7 localhost to the MySQL 8 remote host
$ mysql -u joe -h remotehost -P 3306 -p
Enter password:或者作为在.my.cnf中定义的根用户(它允许您在不传递用户/密码信息的情况下进行连接):
# on the MySQL 5.7 localhost using the root user defined in .my.cnf
$ mysql -u root -p
Enter password:但是MySQL 8中的"mysql“二进制文件似乎并不尊重"-p”,而是立即抛出一个错误:
# on the MySQL 8 local host
$ mysql -u joe -h localhost -P 3306 -p
ERROR 1045 (28000): Access denied for user 'joe'@'localhost' (using password: YES)
# on the MySQL 8 local host to the MySQL 5.7 remote host
$ mysql -u joe -h remotehost -P 3306 -p
ERROR 1045 (28000): Access denied for user 'joe'@'remotehost' (using password: YES)虽然作为在.my.cnf中定义的根用户,它失败了但成功地连接了:
# on the MySQL 8 local host using the root user defined in .my.cnf
$ mysql -u root -p
Welcome to the MySQL monitor. 将“joe”的凭据放入.my.cnf可以让我连接得很好(确认密码是好的):
$ mysql -u joe -p
Welcome to the MySQL monitor. 我感到困惑,并期待着被一个简单的解决方案所困扰:)
解决方案: mysql --no-defaults将表彰-p
发布于 2022-11-15 21:54:26
这是8.0.29中引入的一个bug,并在8.0.31中得到了修复。
发布说明状态:“在MySQL 8.0.29中的bug修复之后,如果在选项文件中提供了密码,则如果在登录时指定了-p选项,则mysql客户端不会提示输入密码。客户端现在总是在指定-p选项时提示输入密码,并且使用指定的密码,即使从选项文件中填充了另一个选项。(Bug #107205,Bug #34134984)”
虽然我的场景来自不同的角度--试图用-u和-p连接到远程服务器--但8.0.31客户端现在提供了一个预期的密码提示。
发布于 2022-09-15 01:20:45
错误:错误1045 (28000):用户“joe”@“localhost”被拒绝访问
检查用户表,选择主机,从mysql.user中选择用户;
https://stackoverflow.com/questions/73723627
复制相似问题