Godaddy サーバーにデータベースをセットアップしました。リモート アクセスを許可するように構成されており、このデータにアクセスする必要があるいくつかの Web サイトを実行しています。別のgodaddyサイトからのアクセスでも動作し、職場でも自宅でも開発環境から接続できます。最近、mydomain.com でホスティングをセットアップしました。
それを引き起こしたコードブロックは次のとおりです。
function connect(){
$servername = "XX.XX.XXX.XX";
$dbusername = "databaseusername";
$dbpassword = "mahpassword";
$dbname = "databasename";
try{
$newMysql = new PDO("mysql:host=".$servername.";dbname=".$dbname, $dbusername, $dbpassword);
}
catch(PDOException $e){
echo 'connection Failed: '. $e->getMessage();
die;
}
}
そして今、新しいサイトで次のエラー メッセージが表示されます。
connection Failed: SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'XX.XX.XXX.XX' (111)
私が考えることができる唯一の問題は、何らかの理由で、MySQL データベースがデフォルトで接続する IP アドレスの数が限られていること (これは奇妙に思えます)、MySQL サーバーのファイアウォールによってブロックされていることです (再び.意味がわかりません)、または mydomain ホスティング サーバーにリモート リクエストを許可しない設定があります (?)
私はこの種のことに慣れていないので、どんな提案も受け付けています。おそらく、新しいサイトに別のデータベースをセットアップすることもできますが、必要がなければ同期を維持するという面倒なことはしたくありません。何が間違っている可能性がありますか? 回避策はありますか?
[編集] コンソール経由でリモート データベースに接続すると、十分な権限を持つ(mysql -h XX.XX.XXX.XX ...)
クイックselect * from SCHEMA_PRIVILEGES
とselect * from USER_PRIVILEGES
ショーがinformation_schema データベースの下に権限が見つかりました。'databaseusername'@'%'
それが私を助けたわけではありませんが、将来誰かを助けるかもしれません. [/編集]