如何连接到外部IP上的数据库?
我想与在其上的服务器,例如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();}?>
所以,你能做到吗?如果是这样,我该怎么做? 感谢大家的帮助;)
PS:对不起,我英文不好
这是很容易来连接远程MySQL服务器使用PHP,你必须做的是:
创建远程服务器中的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
用于编辑mysql权限: mysql> CREATE USER'usr'@'%'IDENTIFIED BY'some_pass'; mysql>在testDb上授予所有特权。* to'monty'@'%'WITH GRANT OPTION; –
为了解决弃用的mysql_ *函数被使用在答案中。 –
我做了更改,但我做了:“弃用:mysql_connect():mysql扩展名被弃用,将来会被删除:使用mysqli或PDO替代”和“Warning:mysql_connect():连接超时” – Superjolly002
首先检查你的公网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";
?>
我做了但我做了:“ 警告:mysqli :: mysqli():(HY000/2002):连接超时” – Superjolly002
这是哪里的服务器?它是一家托管公司;云端;你拥有的服务器等? – w0051977
当你尝试这个时,你有任何错误吗? – C2486
@ w0051977服务器是我的Rpi – Superjolly002