问题集合
作者在数据库实验中,使用如下的文本文档建立php数据库的访问文件后,出现了如下故障
测试代码:
<?php
$myconn = mysql_connect ( "localhost","root","password");
if($myconn){
echo "数据库链接成功!可以申请老师检查!";
}
else {
echo "数据库链接失败!继续按指导书修改!";
}
?>
PHP主要显示错误如下
- MySQL8及以上版本的报错:
Warning: mysql connect() [function.mysqL- connect]: Client does not support authentication protocol requested by server; consider
upgrading MySQL client in C:Program Files (x86)lApache Software
- MySQL5及以上版本的报错
Access denied for user ‘root’@‘localhost’ (using password: YES) in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\mysqlconn.php on line 3
在这个报错网页中,主要有以下三种错误
1.乱码
在上面的图片中,我们可以看到输出的文件存在着乱码现象,作者经过分析后发现主要是由于在输出的文字中含有中文字符
解决方法一
修改测试文件,将中文字符修改为Fail等,使其不含有中文字符
解决方法二
在PHP文本文件头部中加入
header("content-type:text/html;charset=utf-8");
这样一句代码,使其按照utf-8的方式编码
2.版本问题
由于实验室还使用Apache2.0进行实验,作者一开始使用MySQL8.0做实验,发现存在着版本不匹配的问题,主要出现在代码中的mysql_connect函数的部分,在较高的MySQL版本中,存在着不匹配的问题,故提示
consider upgrading MySQL client in C:Program Files (x86)lApache Software
我们可以将PHP文件的mysql_connect函数修改为适配更高版本的mysqli_connect,即可解决问题
$myconn = mysql_connect ( "localhost","root","password");
#改为下面这个句子
$myconn=mysqli_connect("localhost","root","password");
#记得,"password"中填你自己的MySQL的管理员/用户密码,忘了的可以去查一下怎么改
3.密码输入错误
由于作者直接将指导书中的代码直接复制下来,忘了将指导书中的"password"改为自己的MySQL中的密码,一直出错 ,改了很久(一晚上 T_T),前人种树,后人乘凉hhh
会出现如下错误
Client does not support authentication protocol requested by server
的问题,其实主要不是版本的适配错误,主要是你输入的密码错了,只需要将代码中的"password"的部分改成你自己的MySQL的管理员/用户密码即可,忘了同志的可以去Baidu查一下怎么改,这里将不再赘述
修改完毕后的PHP代码
<?php
header("content-type:text/html;charset=utf-8");#修改编码方式
$myconn=mysqli_connect("localhost","root","9999");
if($myconn){
echo "数据库连接成功!可以申请老师检查!";
}
else {
echo "数据库连接失败!继续按指导书修改!";
}
?>
最后再次登录数据库,测试结果成功!
写在最后
各位看官,都看到这里了,麻烦动动手指头给博主来个点赞8,您的支持作者最大的创作动力哟! <(^-^)>
才疏学浅,若有纰漏,恳请斧正
本文章仅用于各位同志作为学习交流之用,不作任何商业用途,若涉及版权问题请速与作者联系,望悉知