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