MySQL 8“mysql”二进制文件不支持“-p”强制密码提示

e5nszbig  于 2022-11-21  发布在  Mysql
关注(0)|答案(2)|浏览(150)

我在MySQL 5.7和MySQL 8服务器上使用相同的密码和相同的mysql_native_password插件为“joe '@”%“创建了一个条目,用于这些测试。
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中定义的root用户(允许您在不传递用户/密码信息的情况下进行连接):

# 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中定义的root用户,则不执行,但连接成功:

# 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

yvfmudvl

yvfmudvl1#

这是8.0.29中引入的错误,已在8.0.31中修复。

版本说明指出:“在MySQL 8.0.29中修复了一个错误后,如果在选项文件中提供了密码,则在登录时指定了-p选项,mysql客户端不会提示输入密码。现在,当指定了-p选项并使用指定的密码时,客户端总是提示输入密码,即使从选项文件填充了替代密码。(错误号107205、错误号34134984)”
虽然我的场景是从不同的Angular --尝试使用-u和-p连接到远程服务器--但是8.0.31客户机现在如预期的那样提供了Password提示。

gdrx4gfi

gdrx4gfi2#

错误:错误1045(28000):用户'joe'@'localhost'的访问被拒绝
查看用户表,从mysql.user中选择主机、用户;

相关问题