此错误是出现在安装并配置好PHP、Mysql、Apache服务器的情况下产生的。
我在网上查找了很多原因,并尝试着修改之后成功了,将解决方法跟大家交流下。
1、在PHP安装目录之下,找到php.ini,在此文件中将“extension=php_mysql.dll”引号中句子前的分号去掉。表明php可以加载此mysql模块,当然也可以选择其他要加载的模块,去掉其前面的分号,但是模块加载得越多,占用的资源越多。
2、加载了模块之后,就需要指明模块所在的位置,比较简单的方式是直接修改环境变量。
具体 *** 作为:
右键”我的电脑” ->“属性” ->“高级” ->“环境变量”,编辑“系统变量”下的“Path”,在原来的值后加上“E:\php\php5E:\php\php5\ext”。(“E:\php\php5”为php的安装目录)
系统路径添加好之后需要重启计算机才能生效。
3、将php安装目录下的libmysql.dll拷贝至apache服务器的bin目录之下。
4、所有的配置修改好之后,需要重启apache服务器。
测试代码:test.php(其中,user为MySQL的用户名,userpassword为MySQL的对应用户密码)
$result = mysqli_query($connect, $query) or die ('Error querying database.')这句话后面加上. mysqli_error($connect ))即改为:$result = mysqli_query($connect, $query) or die ('Error querying database.'. mysqli_error($connect )))
查看一下返回什么错误描述,然后根据错误描述进行修改,当然也可以查看mysql的错误日志啦
ps:光从代码上没看出错误,有可能数据库里的字段名你写错了
info.php在CentOS64位虚拟机运行的时候,其中MySQL版本那一栏是空白信息。我查看了info.php源码,开始以为是MySQL数据库的用户名和密码填写错了,仔细检查没有错误之后,便查看了Apache的error_log,得到如下消息:
mysql_connect():
No
such
file
or
directory
在网上查了一下,说是本地socket设置与默认的不一样,导致php无法找到mysql的socket文件。根据网上提供的方法,需要做如下 *** 作。
首先,在MySQL中用status查看数据库状态,如下所示:
mysql
Ver
14.14
Distrib
5.1.69,
for
redhat-Linux-gnu
(x86_64)
using
readline
5.1
Connection
id:
10
Current
database:
Current
user:
root@localhost
SSL:
Not
in
use
Current
pager:
stdout
Using
outfile:
''
Using
delimiter:
Server
version:
5.1.69
Source
distribution
Protocol
version:
10
Connection:
Localhost
via
UNIX
socket
Server
characterset:
latin1
Db
characterset:
latin1
Client
characterset:
latin1
Conn.
characterset:
latin1
UNIX
socket:
/var/lib/mysql/mysql.sock
Uptime:
20
hours
55
min
30
sec
其中,标红的部分是我们需要的。然后打开php.ini文件,需要将mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket的值设置为标红后面的那个目录。重启apache服务器,后续info.php工作正常,MySQL的版本信息能够正常显示了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)