MySQL 8.0 连接 ‘caching_sha2_password‘ failed with message: Unknown database 问题解决记录

7 篇文章 0 订阅

我在用ABP项目 连接阿里云linux 的mysql8时 出现如下错误提示:

Authentication to host '连接名(IP)' for user 'root' using method 'caching_sha2_password' failed with message: Unknown database '数据库名'

然后按照网上说的方法做了如下尝试:

  1. 在appsettings.json的mysql连接字符串后面加上 SslMode=None ,失败了,没用。

  1. Linux 下可以修改在/etc/my.cnf文件 ,windows下默认安装目录应该是 在programeData下(C:\ProgramData\MySQL\MySQL Server 8.0)找到my.ini

[mysqld]

default_authentication_plugin=mysql_native_password #配置文件中加入这一行

记得重启mysql服务

linux重启mysql的方法:

1、直接使用“service mysqld restart”或“service mysql restart”命令重启;

2、使用“/etc/init.d/mysqld restart”命令重启。

这个也失败了,没用。

  1. 修改root的密码验证方式

从mysql 8.0开始caching_sha2_password是默认的身份验证插件,而不是 mysql_native_password。

修改身份验证方式,命令如下:

alter user 'root' identified with mysql_native_password by '密码'; #连接本机

alter user 'root'@'10.2.110.10' identified with mysql_native_password by 'test123'; #我猜应该是连接远程mysq服务器

mysql> alter user 'root' identified with mysql_native_password by '密码';
Query OK, 0 rows affected (0.01 sec)

输入exit 退出mysql

重启服务:service mysqld restart

再次重试连接,得到如下错误提示:

Authentication to host 'IP' for user 'root' using method 'mysql_native_password' failed with message: Access denied for user 'root'@'IP' (using password: YES)

我再次重新尝试到mysql中 修改'root'@'%':

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

重启服务后再次连接,还是报同样的错误。

但是我用navicat测试连接是可以连上的,所以那就是我连接串的问题了。最后检查连接串发现,是我的连接串密码没改成新密码,而且连接串的数据库名称是大写,这个还涉及要修改数据库区让他不分大小写问题。

4.再次修改my.cnf配置文件设置不区分大小写

mysql大小写敏感配置与两个参数相关 —— lower_case_file_system 和 lower_case_table_names

lower_case_file_system:表示当前系统文件是否大小写敏感(ON为不敏感,OFF为敏感),只读参数,无法修改。

lower_case_table_names:表示表名是否大小写敏感,可以修改。

lower_case_file_system参数无法修改,因此只能利用lower_case_table_names参数来让mysql不区分大小写。

lower_case_table_names=1 说明是否数据目录所在的文件系统对文件名的大小写敏感

0:区分大小写

1:不区分大小写

结果服务都启动不了了,然后用 vi /var/log/mysqld.log 查看日志发现如下

手抽改错了 应该是lower_case_table_names=1,修改my.cnf之后再次上传,重启服务,又报错,查看日志如下,查资料得知

LOWER_CASE_TABLE_NAMES只能在初始化服务器时配置。禁止在服务器初始化后更改LOWER_CASE_TABLE_NAMES设置。

也就是说在8.0版本,你的mysql已经初始化过就不支持修改lower_case_table_names参数了!!等于我要重装?

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值