2017-09-21 6 views
-2

だから、godaddyでホストされているデータベースにリモートで接続しようとしています。毎回1045エラーが発生しています。トラブルシューティング中にローカルでホストされているコードに戻り、 "localhost"からサーバーのIPアドレスにホスト名を変更しようとしましたが、これも1045エラーに終わりました。私はIPアドレスが本当に正しいことを確認しました。データベースはgodaddy共有ホスティングアカウントでホストされています。私はそれらのすべてのトラブルシューティングを実行したし、彼らは私にmysqlまたはcpanelユーザーが "localhost"に割り当てられているということを私に残すように働くホスト名を取得できません。どのようにこれを解決するための任意のアイデア?コードの第1行は機能し、第2行は機能しません。PHP PDO接続ホスト名問題

$db = new PDO('mysql:host=localhost;port=3306;dbname=name;charset=UTF8', 'user', 'pw', array(PDO::ATTR_EMULATE_PREPARES => false)); 

$db = new PDO('mysql:host=100.100.100.1;port=3306;dbname=name;charset=UTF8', 'user', 'pw', array(PDO::ATTR_EMULATE_PREPARES => false)); 
+0

あなたが行っていることを推測する必要がないように、接続に使用しているコードを投稿してください。通常1045は、間違った資格情報を使用していることを意味します。 – tadman

+0

エラー1045はホスト名とは関係ありません。あなたの提供されたユーザー名か、入力されたパスワードが間違っています。 rootでログインしようとしていないことを教えてください。データベースにテーブルにアクセスできるユーザーアカウントを作成していますか? – GrumpyCrouton

+0

これは私の主張です。ホスト名がlocalhostの場合、ユーザー名とパスワードは正常に動作します。ホストがIPアドレスの場合、代わりに1045 –

答えて

0

ポート番号を2行目のコードから削除すると、リモートのMySQLではポート番号が異なる場合があります。 また、リモート用に使用しているホスト名が有効であることを確認してください。それをpingしてみてください。 また、あなたは以下のような接続のエラー処理を持っていることを確認してください。

try{ 
    //Your second line will go here 
    } catch(PDOException $e){ //Catch any errors 
     //$this->error = $e->getCode(). '-'. $e->getMessage(); 
     echo "Could not connect to database: " . $e->getMessage()."\n"; 
    } 

私はそれが動作します願って、私はそこにすべての問題が表示されません。

+0

ポート番号がデフォルトの3306と異なる場合は、それを削除することで状態が改善されることはほとんどありません。たぶんあなたは、GoDaddy管理パネルを使って投稿番号を確認することをお勧めします。 – RiggsFolly

+0

以下のことを確認することを強くお勧めします:データベース名、ユーザー名、パスワード、ポート番号を確認してください。一般的に、彼がリモートでデータベースを作成するために何をしたのか、そしてそのデータベースに対するユーザーをすべて確認する。あなたがアクセスを拒否されたときにMySQLから取得するエラー "1045 error"。 –