• 技术文章 >后端开发 >PHP问题

    用php连接数据库失败怎么办

    藏色散人藏色散人2022-11-19 10:25:53原创454

    用php连接数据库失败的解决办法:1、打开php.ini配置文件,去掉“extension=php_mysql.dll”前面的注释分号,并通过extension指定“php_mysql.dll”的绝对路径;2、修改mysql的my.ini配置文件;3、修改数据集字符集即可。

    php入门到就业线上直播课:进入学习

    本教程操作环境:Windows10系统、PHP8.1版、Dell G3电脑。

    用php连接数据库失败怎么办?

    PHP连接mysql遇到的坑(附解决方法,亲测有效)

    PHP连接mysql遇到的坑

    环境: win10 + PHP5.48 + Apache2.2 + Mysql8.017

    PHP连接实例

    <?php
        $link = mysql_connect("localhost", "myuser", "mypasswd");
        #myuser: 用户名    #mypasswd: 密码    var_dump($link);
        mysql_close();?>

    坑1 Call to undefinedfunction mysql_connect()

    2f56b392437bcff4e8a8573fbea8d94.jpg

    原因: mysql_connect()函数未定义,php.ini配置文件中未开启

    解决方法:

    1.1 配置php.ini函数

    567fe12dc819ec01c2e1408d0d0abd0.jpg
    1.1.1 去掉extension=php_mysql.dll前面的注释分号;
    1.1.2 通过extension指定php_mysql.dll的绝对路径

    1.2 配置文件路径

    1.2.1 将php.ini文件拷贝至c:\windows\system32下

    1.3 重启Apache服务(具体怎么重启就不说了,如果这个都不知道,那本文对你没帮助)

    坑2 The server requested authentication method unknown to the client

    ded6a40d9138a462eb69d047333b939.jpg

    原因: mysql8.x的密码锁机制不一致导致的

    在 mysql 8.x 以后,caching_sha2_password是默认的身份验证插件,而不是以往的mysql_native_password。

    解决方法

    1.1 修改mysql的my.ini配置文件

    75522840d4bff99c09489067d00263d.jpg

    可以看到默认的验证方式是caching_sha2_password ,这里修改为mysql_native_password

    1.2 mysql中查看对应用户身份验证插件

    8ef44cb2d690a8b324ba3ab21ef7d1c.jpg

    可以看到root用户的身份验证插件已经改为了mysql_native_password

    如果身份验证方式没变,执行如下操作

    # 登陆mysqlmysql -uroot -p# 使用mysql数据库use mysql;# 修改身份验证插件ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

    坑3 字符集错误 sever sent charset unknowd to the client ,Please report to the decelopers

    72515cedfdfc8b6294629ff5ec2f5e6.jpg

    原因: MySQL8更换了默认的服务器字符集,mysql8.x的字符集character-set-server默认是utf8mb4,不再是5.x时代的utf8了

    解决方法:

    修改mysql的my.ini配置文件,具体修改条目如下:(这里只展示了需要修改的条目,原配置文件内容很多)

    [client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]collation-server = utf8_unicode_cicharacter-set-server = utf8

    切记:任何每一次的修改,都需要重启Apache服务,以及mysql服务!!!

    推荐学习:《PHP视频教程

    以上就是用php连接数据库失败怎么办的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:php 数据库
    上一篇:php登录失败页面提示怎么实现 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• php连接mssql失败怎么办• php PDO导入数据库失败怎么办• php端口链接失败怎么办• php登录失败页面提示怎么实现
    1/1

    PHP中文网