我已将Google搜索到我的能力边缘,目前的结果似乎并不适用于我。
几天前,管理员对系统进行了一些更改,我每晚必须运行的脚本停止工作。当我尝试运行脚本时,我会得到以下内容:
PHP Warning: mysql_connect(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Path/UpdateDB.php on line 2
PHP Warning: mysql_connect(): No such file or directory in /Path/UpdateDB.php on line 2
PHP Warning: mysql_select_db(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Path/UpdateDB.php on line 3
PHP Warning: mysql_select_db(): No such file or directory in /Path/UpdateDB.php on line 3
PHP Warning: mysql_select_db(): A link to the server could not be established in /Path/UpdateDB.php on line 3
No connection.
我联系了管理员,她说她做了一些改变。当我今天早上运行该脚本时,我刚刚收到了我设置的失败消息,这些消息给了我这个错误:
MySQL错误第1行的'GameID'列数据被截断
现在我检查了所有其他正在谈论严格的表并且我的数据太大,但是GameID是一个int并且我拥有的最大值是1737690。
有一次我设置了无法回复我的声明,然后手动尝试在phpmyadmin中运行它并且它有效。所以这让我相信它正在尝试使用它的路径。
上次休息时进行了一些更新。 OSX在/ usr / bin / php上安装了php。我们在/ usr / local / bin / php上安装了一个本地php,并将其配置为使用mysql。你需要确保在/ usr / local / bin / php使用php。
我已恢复您的crontab文件。我还添加了MAILTO和PATH。所有人现在都被注释掉了。如果取消注释UpdateDB.php,还应该取消注释MAILTO和PATH。 MAILTO会将任何输出发送到您的电子邮件地址。 PATH将确保使用/ usr / local / bin / php而不是/ usr / bin / php。
#MAILTO=evan.lepolt@gmail.com
#PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/usr/local/mysql/bin
#0 * * * * cd ~/Path; php UpdateDB.php;
我已经更新了SSH到ucfilespace.uc.edu时获得的PATH。所以它现在首先有/ usr / local / bin所以如果使用php命令,将使用/ usr / local / bin / php而不是/ usr / bin / php。
/ usr / local / bin / php将mysql套接字定义为/tmp/mysql.sock。所以你的脚本现在应该通过cron和命令行工作。