首页 > 数据库 > Mysql > Yii 连接数据库错误
2013
12-11

Yii 连接数据库错误

Yii连接数据库错误如下:

PHP warning

PDO::__construct() [<a href='pdo.--construct'>pdo.--construct</a>]: OK packet 6 bytes shorter than expected

 

原因:

这是MySQL的核心问题是,MySQL可以有密码和散列存储在老的十六字格式,它不支持PHP 5.3.2 的新mysqlnd类.

 

解决方法:

第一种方案。改变MySQL不使用旧密码

看来,即使是MySQL 5。x版本仍然默认为旧的密码散列。你需要改变这个“my . cnf配置文件:删除或注释掉

old_password= 1

重新启动MySQL。如果你不重启,MySQL将继续使用旧的密码格式。一般只有在数据库迁移升级(mysql4.1是个分界点)建议使用这种方案。

 

第二种方案。改变MySQL不使用旧密码

##关闭old_password支持 即使用41位的散列密码

SET old_passwords = 0;

##修改用户的密码为 PASSWORD函数生成41的位密码

UPDATE mysql.user SET Password = PASSWORD(‘123456′);

##查询是否修改为41位密码,如果没有执行“SET old_passwords = 0”;这里还会是16位的密码格式

SELECT LENGTH(Password) FROM mysql.user;

FLUSH PRIVILEGES;

 

友情提示:

这时候YII 连接数据库就正常了,当然pdo_mysql这个扩展你们记得一定要安装下 不然又报错…

最后编辑:
作者:严嵩
这个作者貌似有点懒,什么都没有留下。
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!