mysql_connect()“No such file or directory”错误排除

在部署LogAnalyzer时碰到一个mysql_connect()的错误,其实就是php抛出的错误!

mysql_connect()函数:http://www.w3school.com.cn/php/func_mysql_connect.asp

主机环境:PHP5.6.1,Nginx1.4.7,Mysql5.5.40

此时的情况是,查询日志时间就会抛出这个错误,而其他模块,比如添加删除用户等,没有受影响,

执行SQL语句select DeviceReportedTime,FromHost,Message from Syslog.SystemEvents,可以得到正常数据。

那问题基本就是出在了php调用Mysql上了。。。。。。。

开始排错:

1.查找LogAnalyzer中用到mysql_connect()函数的地方:

http://phpcrossref.com/xref/loganalyzer/_functions/mysql_connect.html

共计4处

2.查找LogAnalyzer的config.php中的配置

发现有一处表的名字错了,修改为系统正确的即可,此处只是修改了系统配置文件;

进入数据库,修改Syslog数据库下的表logcon_sources的字段DBTableName为正确值;

3.检验mysql_connect()函数是否正确

(1).创建一个test.php

<span style="font-size:14px;"><?php
$con = mysql_connect("localhost","syslog","123456");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

// 一些代码...

mysql_close($con);
?></span>
使用http://localhost:9189/test.php,访问只掉跳出“Could not。。。。。”

2.上一步把问题都确认了,Mysql我也知道UNIX socket的位置

直接进入/etc/php.ini下修改这3个和Mysql相关的套结函数指定位置

<span style="font-size:14px;">mysql.default_socket =/mnt/mydata/mysql.sock
mysqli.default_socket =/mnt/mydata/mysql.sock
pdo_mysql.default_socket=/mnt/mydata/mysql.sock</span>
之后重启php-fpm问题解决

总结一下:

1.网上抄袭回来的代码要细细验证,即使是开源的;

2.出了错,不要到处问人,应该讲程序全部调至debug模式,逐步排除!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。