如何连接到外部ip上的数据库?

时间:2017-09-10 12:25:11

标签: php mysql ip external

我想用服务器上的pc的外部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();}?>

那么,你能做到吗?如果是这样,我该怎么办呢? 谢谢大家的帮助;)

P.s:抱歉我的英文不好

3 个答案:

答案 0 :(得分:1)

 <?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";
 ?>

答案 1 :(得分:0)

使用PHP连接远程MySQL服务器非常容易,您需要做的是:

  1. 在远程服务器中创建MySQL用户。

  2. 为用户授予完全权限:

    • 必须设置服务器的防火墙以启用端口3306上的连接
    • 您必须让MySQL中的用户可以从%(任何主机)进行连接(有关详细信息,请参阅manual
  3. 使用PHP代码连接到服务器(下面给出的示例)

  4. $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
    

答案 2 :(得分:0)

首先检查您的公共IP地址[Public Ip Means External Ip Address],从这里:https://www.whatismyip.com/

现在检查您的系统IP地址(使用cmd中的ipconfig的内部IP地址

两者都是差异所以你需要使用Public Ip Address你从哪一个https://www.whatismyip.com

现在,您必须为特定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';

然后它的工作对你好:)