0

私はこれを自分の能力の限界までグーグルで検索しましたが、現在の結果は私には当てはまらないようです.

数日前、管理者がシステムに変更を加えたため、毎晩実行する必要があったスクリプトが機能しなくなりました。スクリプトを実行しようとすると、次のようになります。

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.

管理者に連絡したところ、いくつかの変更を加えたとのことでした。今朝そのスクリプトを実行したところ、設定した失敗メッセージが表示され、次のエラーが表示されました。

行1の列「GameID」のMySQLエラーデータが切り捨てられました

ここで、テーブルが厳密であり、データが大きすぎることについて話している他のすべてを確認しましたが、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/bin/php の代わりに /usr/local/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;

ucfilespace.uc.edu に SSH 接続したときに得られる PATH を更新しました。そのため、最初に /usr/local/bin があるため、php コマンドを使用すると、/usr/bin/php の代わりに /usr/local/bin/php が使用されます。

/usr/local/bin/php には、/tmp/mysql.sock として定義された mysql ソケットがあります。したがって、スクリプトは cron を介して、またコマンド ラインでも動作するはずです。

4

0 に答える 0