如何连接到外部 ip 上的数据库?
How can I connect to a database on an external 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();}?>
那么,你能做到吗?如果是这样,我该怎么做?
感谢大家的帮助;)
P.s:抱歉我的英语不好
使用PHP连接远程MySQL服务器非常容易,你需要做的是:
在远程服务器中创建一个 MySQL 用户。
授予用户完全权限:
- 必须设置服务器的防火墙以启用端口 3306 上的传入连接
- 您必须在 MySQL 中拥有允许从
%
(任何主机)连接的用户(有关详细信息,请参阅 manual)
使用 PHP 代码连接到服务器(示例如下)
$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
首先检查您的 Public 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';
那么它很适合你:)
<?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";
?>
我想用服务器所在电脑的外部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:抱歉我的英语不好
使用PHP连接远程MySQL服务器非常容易,你需要做的是:
在远程服务器中创建一个 MySQL 用户。
授予用户完全权限:
- 必须设置服务器的防火墙以启用端口 3306 上的传入连接
- 您必须在 MySQL 中拥有允许从
%
(任何主机)连接的用户(有关详细信息,请参阅 manual)
使用 PHP 代码连接到服务器(示例如下)
$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
首先检查您的 Public 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';
那么它很适合你:)
<?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";
?>