mysql - 为什么我不能使用命令行连接到 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 8.0 默认使用 caching_sha2_password。所以如果要连接老版本的MySQL,需要把插件改成mysql_native_password。
推荐阅读
- sql - 使用 hive hql 删除字符 [ ] 和 '
- r - 如何将包括布尔运算符在内的多个条件应用于 ifelse 语句
- r - 在 while 语句中设置变量
- javascript - 我的角色没有向左或向右移动。我找不到问题
- php - 使用递归基于父子关系生成嵌套树结构或层次结构 - PHP
- php - 使用 codeIgniter 和 ajax 在模式中显示验证错误
- javascript - 更新日历 UI 以反映选择的新日期作为使用“gotoDate”函数显示的第一个日期
- r - 如何使用 R 中的 inner_join、dplyr 将两个数据帧连接到 2 列,这些列应该同时匹配?
- postgresql - 我应该在固定长度的 bytea PK 列上设置 STORAGE PLAIN 吗?
- node.js - MongoDB如何限制每个组/类别/条件的结果?