记录一次php连接mysql8.0失败

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 记录一次php连接mysql8.0失败
连接代码:(php5.3.29)
                        if (!empty($user_login_time)) {
                            $ls_mail_ip = "10.173.217.8";
                            $ls_mail_database = "ls_mail";
                            $ls_mail_sql = "insert into mail values('$touser_id',$user_login_time,'$reward_id',$tag)";
                            print_r($ls_mail_sql."\n");
                            $insert_ls_mail = new mysqli($ls_mail_ip, "root", "aaaaaaaaa", $ls_mail_database);
                            if(mysqli_connect_error()){
                                echo mysqli_connect_error();
                            }
                            $insert_result = $insert_ls_mail->query($ls_mail_sql);
                            if($result === false){
                                echo $insert_ls_mail->error;
                                echo $insert_ls_mail->errno;
                            }
                            echo $insert_ls_mail->num_rows;
                            echo $insert_ls_mail->insert_id;
                            $insert_ls_mail->close();
                          }
连接失败,报错:
Client does not support authentication protocol requested by server; consider upgrading MySQL client
Warning: mysqli::query(): Couldn't fetch mysqli in /renzeyuan/test.php on line 104
。。。。。。
(1)登录mysql8.0,查看用户信息:
[root@184-8 ~]# cd /home/mysql
[root@184-8 mysql]# ./bin/mysql -uroot -pdbelex1306 -S status/mysql.sock
#执行SQL查询用户信息
select host,user,plugin,authentication_string from mysql.user;
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| host      | user             | plugin                | authentication_string                                                  |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| 10.%      | backup           | caching_sha2_password | $A$005$ct:hpS  <WHs
                                                                                    t82bx2aVvZO6Gs.rRZrzPb4tcCFJVpxsXC76R4wgzV95 |
| 10.%      | root             | caching_sha2_password | $A$005$]}!Pw3+j.u)!Jb3J.iNux1Ku3tPXgJTPbx6bJ2QURGB29rAtZihjUtT1 |
| localhost | backup           | caching_sha2_password | $A$005$=X#-jOD<[&bF#wUS75e4rSu3Dhkf5Wk.vb6yb7Ymy/bJXZU.0tpzWddTrO3 |
| localhost | mysql.infoschema | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session    | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys        | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root             | caching_sha2_password | $A$005$Hqcm_p^XEUXbgmIrkG9TbRwBoN7OwsAbuMwP9SPlB2REijtrJYZFu.D |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
7 rows in set (0.00 sec)
#发现每个用户的plugin都是 caching_sha2_password,在上网搜索后,发现这种情况是因为mysql8.0 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,因为加密方式不同,所以导致php连接不上 
(2)修改加密方式
#因为是连接的root,所以更改root的密码
ALTER USER 'root'@'10.%' IDENTIFIED WITH mysql_native_password BY 'aaaaaaaaa';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'aaaaaaaaa';
#也可以直接修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; 
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES; 
#再次查看用户信息
mysql> select host,user,plugin,authentication_string from mysql.user;
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| host      | user             | plugin                | authentication_string                                                  |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
| 10.%      | backup           | caching_sha2_password | $A$005$ct:hpS  <WHs
                                                                                    t82bx2aVvZO6Gs.rRZrzPb4tcCFJVpxsXC76R4wgzV95 |
| 10.%      | root             | mysql_native_password | *796480FEEE478491C7B3C1792721002EC6E69BAA                              |
| localhost | backup           | caching_sha2_password | $A$005$=X#-jOD<[&bF#wUS75e4rSu3Dhkf5Wk.vb6yb7Ymy/bJXZU.0tpzWddTrO3 |
| localhost | mysql.infoschema | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session    | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys        | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root             | mysql_native_password | *796480FEEE478491C7B3C1792721002EC6E69BAA                              |
+-----------+------------------+-----------------------+------------------------------------------------------------------------+
#可以看到plugin变为了mysql_native_password,重新进行连接,发现连接成功,insert语句执行成功


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
20 1
|
7天前
|
安全 关系型数据库 MySQL
【赵渝强老师】MySQL的连接方式
本文介绍了MySQL数据库服务器启动后的三种连接方式:本地连接、远程连接和安全连接。详细步骤包括使用root用户登录、修改密码、创建新用户、授权及配置SSL等。并附有视频讲解,帮助读者更好地理解和操作。
|
11天前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发深度解析####
本文作为技术性文章,深入探讨了PHP与MySQL结合在动态网站开发中的应用实践,从环境搭建到具体案例实现,旨在为开发者提供一套详尽的实战指南。不同于常规摘要仅概述内容,本文将以“手把手”的教学方式,引导读者逐步构建一个功能完备的动态网站,涵盖前端用户界面设计、后端逻辑处理及数据库高效管理等关键环节,确保读者能够全面掌握PHP与MySQL在动态网站开发中的精髓。 ####
|
12天前
|
关系型数据库 MySQL PHP
PHP与MySQL动态网站开发实战指南####
本文深入探讨了PHP与MySQL在动态网站开发中的应用实践,通过具体案例解析如何高效结合这两大技术构建数据驱动的Web应用。文章将涵盖环境搭建、基础语法回顾、数据库设计与操作、用户注册与登录系统实现等关键步骤,旨在为开发者提供一个从零到一的项目实战路径,展示PHP与MySQL协同工作的强大能力。 ####
|
21天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
25天前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
1月前
|
Java 关系型数据库 MySQL
【编程基础知识】Eclipse连接MySQL 8.0时的JDK版本和驱动问题全解析
本文详细解析了在使用Eclipse连接MySQL 8.0时常见的JDK版本不兼容、驱动类错误和时区设置问题,并提供了清晰的解决方案。通过正确配置JDK版本、选择合适的驱动类和设置时区,确保Java应用能够顺利连接MySQL 8.0。
130 1
|
1月前
|
SQL 关系型数据库 MySQL
PHP与MySQL协同工作的艺术:开发高效动态网站
在这个后端技术迅速迭代的时代,PHP和MySQL的组合仍然是创建动态网站和应用的主流选择之一。本文将带领读者深入理解PHP后端逻辑与MySQL数据库之间的协同工作方式,包括数据的检索、插入、更新和删除操作。文章将通过一系列实用的示例和最佳实践,揭示如何充分利用这两种技术的优势,构建高效、安全且易于维护的动态网站。
|
1月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
64 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
1月前
|
SQL JavaScript 关系型数据库
Node.js 连接 MySQL
10月更文挑战第9天
19 0