首页 > 解决方案 > 为什么我不能使用命令行连接到 mysql 但可以使用 DataGrip 连接?

问题描述

我从其他人那里得到了用户名和密码,并且已经使用 DataGrip 连接到那个 MySQL 数据库好几天了。今天我使用 mysql 命令行连接该数据库,但出现拒绝访问错误。我使用相同的命令行连接其他数据库并且它工作而不是这个数据库。

我很好奇为什么 DataGrip 可以使用用户名和密码连接到数据库,而命令行却不能。我已经尝试了数十次,所以不应该有错字。PyMySQL 和官方 Java 连接器可以连接,而官方 C/C++ 连接器无法使用该数据库进行连接。发生这种情况的设置是什么?

我使用的命令行:

mysql -h 10.224.23.21 -u board -p

并且密码输入正确。

错误信息是

ERROR 1045 (28000): Access denied for user 'board'@'10.227.24.176:39300' (using password: Yes)

标签: mysql

解决方案


我发现这个问题是由于新版本连接器试图连接旧版本的 MySQL 服务器引起的。MySQL 8.0 默认使用 caching_sha2_password。所以如果要连接老版本的MySQL,需要把插件改成mysql_native_password。


推荐阅读