SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client问题: 接手迁移某环境php代码及数据,源库及目标库版本MySQL8,应用框架为thinkphp5 迁移后访问登录报“500 Internal Server Error” 打开thinkphp调试模…

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

问题:
接手迁移某环境php代码及数据,源库及目标库版本MySQL8,应用框架为thinkphp5
迁移后访问登录报“500 Internal Server Error”
打开thinkphp调试模式:
vim config/app.php
return [
// 应用调试模式

app_debug
” =>
true
,
// 应用Trace
“app_trace” => false,
刷新页面点击登录F12观察到如下错误
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
 
查询发现这个错误是因为MySQL 8默认使用了新的密码验证插件:caching_sha2_password,而之前的PHP版本中所带的mysqlnd无法支持这种验证。
这里出现这个问题是两个环境在安装时所选用的密码验证方式不同造成的
 
解决办法:
一、升级PHP支持MySQL 8的新验证插件
PHP 7.2.8和PHP 7.1.20已经可以支持caching_sha2_password,可直接连接MySQL 8。
建议使用PHP 7.4.3及以上版本
截止PHP 7.0.31和PHP 5.6.37还无法支持caching_sha2_password,不知道后续版本是否会做出支持。
可以通过phpinfo()函数了解当前安装的PHP是否支持caching_sha2_password。
 
 
二、
如不能升级PHP,可在MySQL 8中创建(或修改)使用caching_sha2_password插件的用户,现有的代码及配置无需变动。
1、在
CREATE USER
时,使用IDENTIFIED WITH xxx_plugin BY ‘password‘指定验证插件:
CREATE USER ‘native‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘password@!2#4‘;
2、使用
ALTER USER
修改已有用户的验证插件:
ALTER USER ‘native‘@‘localhost‘ IDENTIFIED WITH mysql_native_password;
ALTER USER ‘native‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘new_password‘;
采用前一种方式,用户的密码将被清除;后一种方式将为用户设置新的密码。
3、/etc/my.cnf配置文件中,有一行:
#
default-authentication-plugin
=
mysql_native_password
删除开头“#”,重启mysql服务,此后创建的用户均默认使用mysql_native_password。
4、MySQL安装完成,未启动情况下修改/etc/my.cnf上述配置,启动后创建的用户默认使用mysql_native_password插件。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/6396.html

(0)
上一篇 2023-04-10 18:00
下一篇 2023-04-10

相关推荐

  • NoSql非关系型数据库之MongoDB应用(一):安装MongoDB服务 – 熊泽「终于解决」

    NoSql非关系型数据库之MongoDB应用(一):安装MongoDB服务 – 熊泽「终于解决」业精于勤,荒于嬉;行成于思,毁于随。 一、MongoDB服务下载安装(windows环境安装) 1.进入官网:https://www.mongodb.com/,点击右上角的 Try Free , 2.

    2023-04-18
    161
  • Python是一门优秀的编程语言

    Python是一门优秀的编程语言Python是一门高级编程语言,由荷兰程序员Guido van Rossum于1989年默默开发。 Python于1994年被发布,受到了程序员们的热烈欢迎。Python一直处于稳定发展状态,并在不断扩展应用领域。现在,Python已经被广泛应用于Web开发、数据分析、人工智能、机器学习等多个领域。Python语言特点是简单、易学、易读、易维护,拥有丰富的标准库和第三方库。

    2024-06-24
    37
  • StoneDB主从切换实践方案

    StoneDB主从切换实践方案StoneDB 的主从切换既可以手动切换,也可以自动切换,自动切换通常需要使用第三方中间件。本文介绍的是较为常用的中间件 Replication Manager,当 master 发生宕机时,可自动切

    2023-06-09
    148
  • 5G手机有哪些 今天来聊聊这一款

    5G手机有哪些 今天来聊聊这一款     市面上主流的牌子我基本都用过,小米ov,三星苹果之类的,跟大家分享一下我个人的感受和想法吧,再聊聊5G手机有哪些性价比比较高的。      市面上常见的手机品牌,很多都有过,比较喜欢的是荣…

    2023-02-19
    171
  • MySQL中varchar(10)和varchar(100)的区别和优缺点[通俗易懂]

    MySQL中varchar(10)和varchar(100)的区别和优缺点[通俗易懂]许多使用MySQL的同学都会使用到varchar这个数据类型。初学者刚开始学习varchar时,一定记得varchar是个变长的类型这个知识点,所以很多初学者在设计表时,就会把varchar(X)的长

    2023-05-09
    148
  • PostgreSQL源码学习–执行器#7,8

    PostgreSQL源码学习–执行器#7,8本节介绍ExecProcNodeFirst函数和ExecProcNode函数。 ExecProcNodeFirst函数 //src/backend/executor/execProcnode.c /…

    2023-03-12
    158
  • centos安装redis4.0教程_为什么要使用redis

    centos安装redis4.0教程_为什么要使用redis一、CentOS 7.9 安装 redis-6.2.0 1 下载地址:https://download.redis.io/releases/redis-6.2.0.tar.gz 2 安装gcc来进行编

    2023-06-08
    140
  • PyCharm修改背景颜色为中心

    PyCharm修改背景颜色为中心PyCharm是一款由JetBrains公司开发的Python IDE,采用Python语言编写,支持多个主流操作系统,如Windows、Linux和MacOS。该编辑器具有强大的功能和灵活的设置,因此备受编程人员的青睐。PyCharm支持多种颜色主题设置,包括背景颜色、字体颜色等,其中背景颜色是十分重要的设置之一。本篇文章将以PyCharm修改背景颜色为中心,向读者介绍如何自定义PyCharm的背景颜色,使其满足个人喜好及需求。

    2024-07-07
    39

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注