2017-09-10 8 views
-3

私は、たとえば、上のサーバーPCの外部IPを使用してデータベースに接続したい:だから、外部IP上のデータベースに接続するにはどうすればよいですか?

<? $db_host = "xxx.xxx.xxx.xxx" //external ip 
$db_user = "user"; $db_password = "password"; $db_database = "database"; 
$conn = "mysql:host=$db_host;dbname=$db_database;charset=utf8mb4"; try {$db = new PDO($conn , "$db_user", "$db_password");}catch(PDOException $e) {echo 'Error: '.$e->getMessage();}?> 

あなたはそれを行うことができますか?もしそうなら、どうしたらいいですか?助けを みんなありがとう;)

シモンズ:私の悪い英語のため申し訳ありません

+0

このサーバがありますか?それはホスティング会社ですか?クラウド;あなたが所有するサーバーなど? – w0051977

+0

これを試したときにエラーが発生しますか? – C2486

+0

@ w0051977サーバはmysql特権を編集するための私のRpi – Superjolly002

答えて

0

PHPを使用してリモートのMySQLサーバに接続することは非常に簡単で、何をしなければならないことは次のとおりです。

  1. の作成しますリモートサーバのMySQLユーザ。

  2. は、ユーザーに完全な権限を与える:サーバーの

    • ファイアウォールがセットアップされている必要があり、ポート3306
    • のincomming接続を可能にするためにあなたがからの接続を許可されているMySQLでユーザーを持っている必要があります%(任意のホスト)PHPコードを使用してサーバー(下記のサンプル)

  3. 接続を(詳細はmanual参照)

$link = mysql_connect('your_my_sql_servername or IP Address', 'new_user_which_u_created', 'password'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 

echo 'Connected successfully'; 

mysql_select_db('sandsbtob',$link) or die ("could not open db".mysql_error()); 
// we connect to localhost at port 3306 
+0

です: mysql> CREATE USER 'usr' @ '%' IDENTIFIED BY 'some_pass'; mysql> testDb。* TO 'monty' @ '%'でGRANT ALL PRIVILEGESを有効にします。 –

+0

非難されたmysql_ *関数が答えに使われています。 –

+0

私は変更を行いましたが、私はしましたが、 "廃止されました:mysql_connect():mysql拡張機能は廃止され、今後削除されます:mysqliまたはPDOを代わりに使用"と "警告:mysql_connect():接続タイムアウト" – Superjolly002

0

まずここから[Public Ip Means External Ip Address]あなたのパブリックIPアドレスを確認してください:今すぐhttps://www.whatismyip.com/

し、システムのIPアドレス(cmdでIPCONFIGを使用して内部IPアドレス)を確認してください

両方あなたが使用する必要があるDifferectだから

これで、特定のiPアドレスのデータベースへのアクセス権を与える必要があります。デフォルトでは、MySQLはアクセスできません。このよう

SQL> GRANT ALL PRIVILEGES ON database.* TO 'user'@'your_database_pc_public_ip' IDENTIFIED BY 'newpassword'; 

例::あなたのため

SQL> GRANT ALL PRIVILEGES ON database.* TO 'any_name'@'public_ip' IDENTIFIED BY 'any_password'; 

そして、その作業ファイン:)

0
<?php 
    $dbServerName = "DNS Name or ip address"; 
    $dbUsername = "username"; 
    $dbPassword = "password"; 
    $dbName = "dbname"; 

    // create connection 
    $conn = new mysqli($dbServerName, $dbUsername, $dbPassword, $dbName); 

    // check connection 
    if ($conn->connect_error) 
    { 
     die("Connection failed: " . $conn->connect_error); 
    } 
    echo "Connected successfully"; 
?> 
+0

変更:しかし、私はした: " 警告:mysqli :: mysqli():(HY000/2002):接続タイムアウト" – Superjolly002

関連する問題