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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
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语句执行成功


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
关系型数据库 MySQL 数据库连接
Unity连接Mysql数据库 增 删 改 查
在 Unity 中连接 MySQL 数据库,需使用 MySQL Connector/NET 作为数据库连接驱动,通过提供服务器地址、端口、用户名和密码等信息建立 TCP/IP 连接。代码示例展示了如何创建连接对象并执行增删改查操作,确保数据交互的实现。测试代码中,通过 `MySqlConnection` 类连接数据库,并使用 `MySqlCommand` 执行 SQL 语句,实现数据的查询、插入、删除和更新功能。
|
2月前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
24天前
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
124 25
|
3月前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发:从基础到实践####
本文将深入探讨PHP与MySQL的结合使用,展示如何构建一个动态网站。通过一系列实例和代码片段,我们将逐步了解数据库连接、数据操作、用户输入处理及安全防护等关键技术点。无论您是初学者还是有经验的开发者,都能从中获益匪浅。 ####
|
3月前
|
关系型数据库 MySQL PHP
php实现一个简单的MySQL分页
通过本文的详细步骤和代码示例,我们实现了一个简单的PHP MySQL分页功能。主要步骤包括计算总记录数、设置分页参数、查询当前页的数据以及生成分页链接。这种分页方式适用于大多数Web应用,能够有效提升用户体验和页面响应速度。
88 4
|
4月前
|
关系型数据库 MySQL 网络安全
DBeaver连接MySQL提示Access denied for user ‘‘@‘ip‘ (using password: YES)
“Access denied for user ''@'ip' (using password: YES)”错误通常与MySQL用户权限配置或网络设置有关。通过检查并正确配置用户名和密码、用户权限、MySQL配置文件及防火墙设置,可以有效解决此问题。希望本文能帮助您成功连接MySQL数据库。
441 4
|
3月前
|
SQL 关系型数据库 MySQL
PHP与MySQL的高效交互:从基础到实践####
本文深入探讨了PHP与MySQL数据库之间的高效交互技术,涵盖了从基础连接到高级查询优化的全过程。不同于传统的摘要概述,这里我们直接以一段精简代码示例作为引子,展示如何在PHP中实现与MySQL的快速连接与简单查询,随后文章将围绕这一核心,逐步展开详细讲解,旨在为读者提供一个从入门到精通的实战指南。 ```php <?php // 数据库配置信息 $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "test_db"; // 创建连接 $conn = new mysqli($se
104 0
|
4月前
|
关系型数据库 MySQL PHP
PHP与MySQL的深度整合:构建高效动态网站####
在当今这个数据驱动的时代,掌握如何高效地从数据库中检索和操作数据是至关重要的。本文将深入探讨PHP与MySQL的深度整合方法,揭示它们如何协同工作以优化数据处理流程,提升网站性能和用户体验。我们将通过实例分析、技巧分享和最佳实践指导,帮助你构建出既高效又可靠的动态网站。无论你是初学者还是有经验的开发者,都能从中获得宝贵的见解和实用的技能。 ####
51 0
|
6月前
|
安全 关系型数据库 MySQL
PHP与MySQL交互:从入门到实践
【9月更文挑战第20天】在数字时代的浪潮中,掌握PHP与MySQL的互动成为了开发动态网站和应用程序的关键。本文将通过简明的语言和实例,引导你理解PHP如何与MySQL数据库进行对话,开启你的编程之旅。我们将从连接数据库开始,逐步深入到执行查询、处理结果,以及应对常见的挑战。无论你是初学者还是希望提升技能的开发者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索PHP与MySQL交互的世界,解锁数据的力量!
|
4月前
|
前端开发 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
【10月更文挑战第21天】 本文将深入浅出地探讨如何使用PHP与MySQL构建一个动态网站,从环境搭建到项目部署,全程实战演示。无论你是编程新手还是希望巩固Web开发技能的老手,都能在这篇文章中找到实用的技巧和启发。我们将一起探索如何通过PHP处理用户请求,利用MySQL存储数据,并最终呈现动态内容给用户,打造属于自己的在线平台。 ####
149 0

热门文章

最新文章