php使用mysqli_connect()出现以下提示错误,各位帮忙啊!
php使用mysqli_connect()出现以下提示:Warning:mysqli_connect()[function.mysqli-connect]:OKpacke...
php使用mysqli_connect()出现以下提示:
Warning: mysqli_connect() [function.mysqli-connect]: OK packet 6 bytes shorter than expected. PID=6028 in C:\AppServ\www\06\center\conn\conn.php on line 29
Warning: mysqli_connect() [function.mysqli-connect]: mysqlnd cannot connect to MySQL 4.1+ using old authentication in C:\AppServ\www\06\center\conn\conn.php on line 29
Warning: mysqli_connect() [function.mysqli-connect]: (00000/0): in C:\AppServ\www\06\center\conn\conn.php on line 29
Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\AppServ\www\06\center\conn\conn.php on line 30
用的是书上的代码,但是运行的时候就出现这样的提示,谁能解释一下到底是什么情况?
php用的是6,mysql用的6.0.4,php.ini文件中的extension=php_mysqli.dll前的“;”已经去掉
问题已经解决,现给出处理过程如下:
本次问题主要是 使用高版本mysql数据库导入了低版本数据引起的,其中高版本数据库的password hashes 是41位的hashes,而低版本数据库的数据存储的root 的password是16位的hashes,需要修改user表的password字段数据为41为的hashes,一下为具体修改的命令。
use mysql; // 进入存储user表的数据库
set session old_passwords=0; //修改session使用41位hashes(16为1,41的为0)
select password('111'); //查看你的password函数是否可以生成41位的hashes
set password for 'root' @'localhost' = password('111'); //使用password函数修改你的root密码为41的hashes
希望对其他人有用,也谢谢几位热心人 展开
Warning: mysqli_connect() [function.mysqli-connect]: OK packet 6 bytes shorter than expected. PID=6028 in C:\AppServ\www\06\center\conn\conn.php on line 29
Warning: mysqli_connect() [function.mysqli-connect]: mysqlnd cannot connect to MySQL 4.1+ using old authentication in C:\AppServ\www\06\center\conn\conn.php on line 29
Warning: mysqli_connect() [function.mysqli-connect]: (00000/0): in C:\AppServ\www\06\center\conn\conn.php on line 29
Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\AppServ\www\06\center\conn\conn.php on line 30
用的是书上的代码,但是运行的时候就出现这样的提示,谁能解释一下到底是什么情况?
php用的是6,mysql用的6.0.4,php.ini文件中的extension=php_mysqli.dll前的“;”已经去掉
问题已经解决,现给出处理过程如下:
本次问题主要是 使用高版本mysql数据库导入了低版本数据引起的,其中高版本数据库的password hashes 是41位的hashes,而低版本数据库的数据存储的root 的password是16位的hashes,需要修改user表的password字段数据为41为的hashes,一下为具体修改的命令。
use mysql; // 进入存储user表的数据库
set session old_passwords=0; //修改session使用41位hashes(16为1,41的为0)
select password('111'); //查看你的password函数是否可以生成41位的hashes
set password for 'root' @'localhost' = password('111'); //使用password函数修改你的root密码为41的hashes
希望对其他人有用,也谢谢几位热心人 展开
4个回答
2014-02-18
展开全部
把账号密码都填错误的,看看有没有其他提示,如果有就重置账号密码或者检查账号权限,如果还是相同的就到官网在下载其他版本试试,希望对你有所帮助
追问
我看这个会不是mysqli中的password hashes 16位与41位的区别啊?请问是从mysql4.1开始就都是41位了吗?
还是4.1是16位而6.0变成了41位
追答
这个不是问题,问题在是否连接上数据库,连接不上根本就没有什么所谓的比对密码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看手册(php.net) 不要看书 国内的教程大多都很滞后,要学php 手册才是最好的教科书
追问
我看这个会不是mysqli中的password hashes 16位与41位的区别啊?请问是从mysql4.1开始就都是41位了吗?
还是4.1是16位而6.0变成了41位
追答
首先看你的mysql是什么版本的 然后看对应的版本的mysql手册看看上面怎么说的,还有你首先在命令行下可以连接成功,然后你再用php提供的方法连接,这样你能确定你的账号和密码没有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
重设mysql密码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询