前提
如题所示使用的是PHP7的版本,连接MYSQL8.0数据库遇到的问题,提供我个人的解决办法。
我的报错是:Call to undefined function mysqli_connect()
首先明确
- 保证PHP与MySQL可以正常使用
访问localhost:80【或者你设置的端口号】是有页面的 - 服务正常启用着
- 使用
mysqli_connect()
而不是mysql_connect()
因为7.x版本中已经舍弃了mysql_connect();
最后成功的操作
是这篇文章解决了 https://www.codenong.com/cs107088187/
打开PHP的安装目录找到php.ini
如果没有复制php.ini-development或者php.ini-production重命名为php.ini
修改里面的配置,就是去掉前面的 ; 打开对应功能
extension=bz2extension=curlextension=gd2extension=mbstringextension=mysqliextension=pdo_mysqlextension=pdo_sqlite
图示:
还有一个需要改
extension_dir="[php安装目录]\ext"
这里不能照抄
啊,找到自己的目录。保存php.ini文件关闭
重启一下Apache
我也不是很懂为什么要重启
测试
在apache下的htdocs下新建一个newpublic.php文件【反正php文件就行】
//主机名:localost 用户名:root 密码:123456$con=mysqli_connect('localhost','root','123456');// var_dump($con);// echo '';
//简单测试一下if ($con) {echo '连接成功';}else{echo "连接失败";}?>
访问 http://localhost:8080/newpublic.php
我监听的是8080端口,如果不一样可以需要修改
测试成功
其他方法 修改权限
如果问题没有解决话可以试试下面的方法,因为的也有根据下面的方法修改过。不清楚有无影响。(具体看链接:PHP连接MYSQL8.0失败 )
# 简略版 我的新密码 用'123456'ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';修改权限# 刷新权限FLUSH privileges;
安装的 MySQL Server 8.0\MySQLData下面(这是隐藏文件)的my.ini 这个配置文件里的[mysqld]这个部分,添加default_authentication_plugin=mysql_native_password
重启MySQL服务
来源地址:https://blog.csdn.net/weixin_46709007/article/details/130976324