私はPHP Webサーバを分離し、MySQLデータベースを別のボックスに移動します。 AWS上の実際に2つのインスタンス。別のボックスにPHPサーバを持つMySQL認証と特権
新しいMySQLボックスにユーザーとして接続できますが、クエリは実行できません。
MySQLのオンは:
CREATE USER 'username'@'ip address' IDENTIFIED BY 'password';
GRANT ALL ON dbname.* TO 'username'@'ip address' IDENTIFIED BY 'password';
**私が開こうとすると
検証済みユーザー
mysql> SELECT user, host, password FROM mysql.user;
| username | ip address | *... |
mysql> show grants for 'username'@'ip address'
+-----------------------------------------------------------------------------------------------------------------+
| Grants for username'@'ip address |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'username'@'ip address' IDENTIFIED BY PASSWORD '*...' |
| GRANT ALL PRIVILEGES ON `dbname`.* TO 'username'@'ip address' |
+-----------------------------------------------------------------------------------------------------------------+
を制限するとの問題がなかったことを確認するために、すべてのテストのためにGRANTするように変更しますPHPのページがdbから情報を取得する
Invalid authorization specification: 1045 Access denied for user
'username'@'ip address' (using password: YES)
すべてが同じボックスでうまく動作し、dbボックスにポートを開くまで、ユーザーがWebからdbサーバーに接続していることがわかりました。私は、資格情報を確認する際にMySQL認証がプロセスを実行することを理解していますが、これを追跡することができませんでした。
他にもやりたいことがありますか?
UPDATE
私はそれを作成したように、この新しいデシベルボックスには、my.cnfファイルを持っていなかった、うまくMySQLの再起動。 bind-address = ip address
を追加すると、MySQLが起動せず、Starting MySQL... ERROR! The server quit without updating PID file (...)
のエラーが発生します。
はい、私はそうしましたが、それは問題が解決しない – enfield
はあなたのMySQLdbボックスにウェブサーバあなたから端子を介して接続することができます言及している必要があります: - mysqlの-udbuser -p -hYOUR_DB_IP置き換えますあなたの詳細とdbuser&YOU_DB_IP –