Ⅰ php连接mysql数据库,报错Function mysql_connect() is deprecated
info.php在CentOS
64位虚拟机运行的时候,其中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的版本信息能够正常显示了。
Ⅱ php 连接mysql数据库错误,求解
码没错,只是没有加载php_mysql.dll这个extension 修改php.ini后要重启apache才行,不然你修改的效果不会显示出来的
Ⅲ 近期使用phpmysql出现error:Lost connection to MySQL server ring query错误,急求!!!
一般这种情况可能的原因:
1.数据库太大,导致服务器超时了并且关闭了连接。这种情况你可以通过修改mysql的超时配置来改善,如interactive_timeout、wait_timeout、max_allowed_packet。
2.也有可能是你访问的数据库表有问题,这种情况一般就是只当你访问某个表才会出现这个问题,那么你可能需要修复下该表。
以下是mysql用户手册中的相关资料:
18.2 使用MySQL时的一些常见错误
18.2.1 MySQL server has gone away错误
本小节也涉及有关Lost connection to server ring query的错误。
对MySQL server has gone away错误最常见的原因是服务器超时了并且关闭了连接。缺省地,如果没有事情发生,服务器在 8个小时后关闭连接。你可在启动mysqld时通过设置wait_timeout变量改变时间限制。
你可以通过执行mysqladmin version并且检验正常运行的时间来检查MySQL还没死掉。
如果你有一个脚本,你只须再发出查询让客护进行一次自动的重新连接。
在这种请下,你通常能获得下列错误代码(你得到的是OS相关的):
CR_SERVER_GONE_ERROR 客户不能发送一个问题给服务器。
CR_SERVER_LOST 当写服务器时,客户没有出错,但是它没有得到对问题的一个完整的答案(或任何答案)。
如果你向服务器发送不正确的或太大的查询,你也可能得到这些错误。如果mysqld得到一个太大或不正常的包,它认为客户出错了并关闭连接。如果你需要较大的查询(例如,如果你正在处理较大的BLOB列),你可以使用-O max_allowed_packet=#选项(缺省1M)启动mysqld以增加查询限制。多余的内存按需分配,这样mysqld只有在你发出较大差询时或mysqld必须返回较大的结果行时,才使用更多的内存!
Ⅳ 使用php链接mysql数据库的时候报错了,错误提示:Warning: mysqli::__construct(): (HY000/2002):
$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:光从代码上没看出错误,有可能数据库里的字段名你写错了