0

コマンドラインphpスクリプトファイルでMySQLに接続しようとしています。GUI モードで実行している別のファイルがありますが、コマンド ライン モードでは、mysqli_connect 時に以下のエラーが表示されます。

mysqlnd は、古い安全でない認証を使用して MySQL 4.1+ に接続できません。管理ツールを使用して、コマンド SET PASSWORD = PASSWORD('your_existing_password') でパスワードをリセットしてください。これにより、新しい、より安全なハッシュ値が mysql.user に保存されます。このユーザーが PHP 5.2 以前で実行される他のスクリプトで使用されている場合、my.cnf ファイルから old-passwords フラグを削除する必要がある場合があります。

パスワードを更新できることを理解しています。しかし、何らかの理由で、古いパスワードを新しいパスワードで更新できません。したがって、古いパスワードをサポートしてmysqlに接続する必要があります。

繰り返しますが、同じサーバーの GUI モードでは同じコードが正常に動作しますが、CLI モードでは動作しません。それがどのように起こっているか。誰でも何か考えがありますか?

4

1 に答える 1

0

Web サーバーとコマンドライン PHP で使用される PHP.ini ファイルを確認できますか? Web サーバーの場合は、phpinfo() でページを作成し、php.ini ファイルの場所を確認するだけです。Web サーバーが使用する PHP.ini ファイルの場所を取得したら、次を使用してコマンド ラインから PHP スクリプトを実行できます。

php -c <Path of PHP.ini> <Your PHP Script>
于 2013-04-01T09:46:55.837 に答える