0

私の構成は比較的単純です。私は持っている:

  • API を実行するサーバー。

  • このサーバーは、別のサーバー上のデータベースに接続します。

  • Sequel Pro を使用して PC から SSH で API サーバーに接続し、そこからデータベース サーバーに接続できます。

  • 端末で API サーバーに手動で SSH 接続し、MYSQL コマンド ラインから同じユーザー ID とパスワードを使用してデータベースに接続できます。

ただし、PHP スクリプトが PDO_connect を試行すると、....

PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[42000] [1044] Access denied for user 'validusername'@'%' to database 'live'' in /var/www/live/community/backend/lib/Db/Connection.php:27
Stack trace:

0 /var/www/live/community/backend/lib/Db/Connection.php(27): PDO->__construct('mysql:host=10.2...', 'validusername', 'validPass', Array)

1 /var/www/live/community/backend/lib/Communication/Base.php(57): Changers_Db_Connection->__construct('10.248.174.31', 'live', 'validusername', 'validPass', NULL)\n

2 /var/www/live/factory/index.php(40): Communication_Base->useSourceConnection('10.248.174.31', 'live_licence', 'validusername', 'validPass')

3 {main}\n  thrown in /var/www/live/community/backend/lib/Changers/Db/Connection.php on line 27

memcached を使用する Ubuntu サーバー。

システムが続行するのは無意味なので、エラーの致命性については心配していません。この方法以外のすべての方法で接続できる理由を本当に理解する必要があります。

アドバイスをいただければ幸いです。

よろしくクリス

4

1 に答える 1

0

アクセスは既知の IP アドレスに制限されていました。そのため、'validuser'@'%' の送信は受け入れられませんでした。他のすべてのメソッドは 'validuser'@'API サーバーの IP アドレス' を送信しますが、PHP スクリプトは 'validuser'@'%' を送信します。何が修正されたのかは 100% わかりませんが、最終的にSymfony 2と PHP 5 を削除して再インストールしました。

于 2013-07-15T23:07:47.530 に答える