mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication解决办法
mysqlnd是个好东西。不仅可以提高与mysql数据库通信的效率,而且也可以方便的设置一些超时。如,连接超时,查询超时。
但是,使用mysqlnd的时候,有个地方需要注意。就是服务端的密码格式不能使用旧的16位的存储格式,而要使用新的41位的存储格式。
如果,服务端的密码格式是16位,那么就会报错。信息如下:
Fatal error: Uncaught exception ‘PDOException’ with message ‘SQLSTATE[HY000] [2000] mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD(‘your_existing_password’). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file’ in /home/hailong.xhl/test.php:8
如何查看自己的密码是否符合要求,so easy。
1
2
3
4
5
6
7
|
mysql> select user,length(password) from mysql.user;
+--------------+------------------+
| user | length(password) |
+--------------+------------------+
| demo | 16 |
| demo | 16 |
+--------------+------------------+
|
上面的密码是旧的16位格式。如果想改成新的41位格式,通过以下命令就可以。
1
2
3
4
5
6
7
8
9
10
11
12
|
mysql>UPDATE mysql.user SET Password = PASSWORD( 'demo' ) WHERE user = 'demo' ;
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 0
mysql> select user,length(password) from mysql.user;
+--------------+------------------+
| user | length(password) |
+--------------+------------------+
| demo | 41 |
| demo | 41 |
+--------------+------------------+
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
|
修改完密码后,还需要在配置文件中修改下old_passwords选项。把值设置为0。即,
old_passwords=0
然后重启mysql。
转载于:https://blog.51cto.com/myunix/1679716
mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication解决办法相关推荐
- mac rails mysql_MAC下Rails连接mysql出现 dyld: Symbol not found: _mysql_get_client_info 的解决办法...
MAC下Rails连接mysql出现 dyld: Symbol not found: _mysql_get_client_info 的解决办法 2014-2-12 / 阅读数:5471 / 分类: R ...
- 修改mysql字符编码出现Job failed to start解决办法
修改mysql字符编码出现Job failed to start解决办法 在python mange.py shell下填充MySQL数据库的时候,发现汉字不能输入. 于是要修改一下MySQL数据库编 ...
- mysql ERROR 1396 (HY000): Operation CREATE USER failed 解决办法
mysql ERROR 1396 (HY000): Operation CREATE USER failed 解决办法 mysql 创建用户的时候: create user 'hive' identi ...
- 卸载MySQL以及重装卡到Start Services的解决办法(亲测有效,刚重装成功)
卸载MySQL以及重装卡到Start Services的解决办法 重装系统永远是个好办法,但是对于我们程序员来说只要一想到电脑上的环境变量和其他的配置就蔫了.所以这一条就当作是废话吧. 一般来说装My ...
- mysql grant reload,MySQL执行GRANT命令时报错ERROR 1045解决办法
摘要 腾兴网为您分享:MySQL执行GRANT命令时报错ERROR 1045解决办法,杂志迷,云闪付,一直播,小象优品等软件知识,以及592美剧,乐天网络电视,吃鸡无后座,易语言宝盒,语音转文字软件, ...
- MySQL server PID file could not be found! 解决办法 (李作强)
MySQL server PID file could not be found! 解决办法 1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限 解决方法 :给 ...
- MySQL最后一步四勾都没√解决办法
MySQL最后一步四勾都没√解决办法 今天给老师安装mysql 5.5 版本时出了问题,老师的电脑系统为Windows7,MySQL安装版本为mysql 5.5.安装到最后一步(MySQL实例配置最后 ...
- mysql从myisam_将MySQL从MyISAM转换成InnoDB错误和解决办法
原来自己用的是为了装的, 所以在设置database usage(如下图1)的时候按照discuz官方的建议,选的都是Non-Transactional Database Only(只支持MyISAM ...
- mysql远程访问显示警告信息_开启mysql远程访问过程中所遇常见问题的解决办法...
今天在测试MySQL的连接时候,发现连接不通过,并报错ERROR 2003 (HY000): Can't connect to mysql server on '192.168.10.210' (11 ...
- 使用hibernate与mysql时数据不能插入的原因及解决办法
1.背景 之前从没用过hibernate,因此在网上搜了一下hibernate快速入门方面的信息,最后我按照<Myeclipse Hibernate 快速入门 中文版>(CSDN,百度文库 ...
最新文章
- 将窗体中名称为iremark_习题三新
- CVPR 2021|三维视觉相关论文汇总
- Protocol Buffer基本语法
- 元素与核素有什么区别?
- php 科研,科研之路2
- OPPO全球营销总裁沈义人宣布卸任,网友:第二天宣布入职小米?
- centos搭建git服务
- HEVC代码学习31:xCheckRDCostMerge2Nx2N函数
- 软件测试用例详细规范
- 【转】找工时间线和心得
- C#nameof用法
- 数据挖掘学习--主成分分析
- buuctf|ciscn_2019_en_2 1
- 量子理论学习:概率幅
- iOS 教你如何修改微信运动步数
- docker启动和关闭命令
- week8—多线程下载多个网页文件
- 熵 计算机学,计算机科学 – 熵的计算机科学定义是什么?
- 使用css3和h5实现幻灯片,点击切换图片效果
- 银联前置的一些基本知识
热门文章
- hadoop2.8配置_hadoop2.8安装教程
- 计算机网络超详细笔记(四):介质访问控制子层
- LaTeX Package cleveref: cleveref must be loaded after hyperref!. 的解决方案
- idea引不进jdk的包_idea install 时提示jdk的某个jar包的包不存在的问题
- ppt生成eps文件_eps是什么格式怎么打开?全面解析图片的eps是什么格式
- 简单的全局异常统一处理
- 计算机思维在化学上的应用,信息技术在化学教育中的应用
- 诡异的问题“该字符串未被识别为有效的 DateTime”
- Spring入门篇——第4章 Spring Bean装配(下)
- 使用opencv的nonfree模块