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

来源:互联网 发布:java接收安卓上传图片 编辑:程序博客网 时间:2024/06/05 14:37

在部署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

<?php
$con = mysql_connect("localhost","syslog","123456");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_close($con);
?>
使用
http://localhost:8190/test.php,访问只掉跳出“Could not。。。。。”

2.上一步把问题都确认了,Mysql我也知道UNIX socket的位置
直接进入/etc/php.ini下修改这3个和Mysql相关的套结函数指定位置
mysql.default_socket =/mnt/mydata/mysql.sock
mysqli.default_socket =/mnt/mydata/mysql.sock
pdo_mysql.default_socket=/mnt/mydata/mysql.sock
之后重启php-fpm问题解决总结一下:

1.网上抄袭回来的代码要细细验证,即使是开源的;
2.出了错,不要到处问人,应该讲程序全部调至debug模式,逐步排除!

1 0
原创粉丝点击