Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我想测试与本地托管的MySQL数据库的连接-远程_Php_Mysql_Parameters_Wamp - Fatal编程技术网

Php 我想测试与本地托管的MySQL数据库的连接-远程

Php 我想测试与本地托管的MySQL数据库的连接-远程,php,mysql,parameters,wamp,Php,Mysql,Parameters,Wamp,我有一个使用WAMP在本地托管的mySQL数据库,我完成了远程访问它的所有过程,似乎已经成功地将IP地址放入我的手机,请参阅WAMP和访问phpmyAdmin等 我的问题是,我想使用下面的脚本从我的网站测试数据库连接(最终我想使用一个WP插件从数据库中获取信息,然后关闭它) 但是,我不能完全确定参数是什么 Apache服务器位于端口80上,mysql位于端口3306上。我已经在这些端口上设置了端口转发,并使用 因此,我的主机是myIP(使用myIP):80还是3306 我两个都试过了,但都失败了

我有一个使用WAMP在本地托管的mySQL数据库,我完成了远程访问它的所有过程,似乎已经成功地将IP地址放入我的手机,请参阅WAMP和访问phpmyAdmin等

我的问题是,我想使用下面的脚本从我的网站测试数据库连接(最终我想使用一个WP插件从数据库中获取信息,然后关闭它)

但是,我不能完全确定参数是什么

Apache服务器位于端口80上,mysql位于端口3306上。我已经在这些端口上设置了端口转发,并使用

因此,我的主机是myIP(使用myIP):80还是3306

我两个都试过了,但都失败了。我的用户名是root还是rootRoot@Host

就像我说的,最终我要测试这个,连接到数据库,然后使用WordPress插件中的参数将数据从本地托管的数据库复制到站点的数据库

请告知

多谢各位

<?php
# Fill our vars and run on cli
# $ php -f db-connect-test.php
$dbname = 'name';
$dbuser = 'user';
$dbpass = 'pass';
$dbhost = 'host';
$connect = mysql_connect($dbhost, $dbuser, $dbpass) or die("Unable to Connect to '$dbhost'");
mysql_select_db($dbname) or die("Could not open the db '$dbname'");
$test_query = "SHOW TABLES FROM $dbname";
$result = mysql_query($test_query);
$tblCnt = 0;
while($tbl = mysql_fetch_array($result)) {
  $tblCnt++;
  #echo $tbl[0]."<br />\n";
}
if (!$tblCnt) {
  echo "There are no tables<br />\n";
} else {
  echo "There are $tblCnt tables<br />\n";
}

确保路由器允许端口转发。如果(ip地址)xxx.xxx.xxx.xxx:80没有显示任何内容,则端口未正确转发。以下是您可以进行的一些检查,以了解问题所在:

查看它是否在127.0.0.1的本地机器上工作(很可能在您的情况下工作)

检查网络上的其他设备,如使用智能手机,转到机器的本地IP地址,看看是否有效


如果以上两种方法都有效,那么您需要确保路由器的端口转发正确的IP地址和端口

您为什么要使用长期以来不推荐使用的
mysql\uu
代码库?它在许多年前就已经停止使用,并在PHP7中被完全删除。不应使用此库编写新代码。它使您可能容易受到SQL注入攻击(由于缺少参数化查询支持)和其他未修补漏洞的攻击。尽快切换到使用
mysqli
PDO
,然后学习如何编写参数化查询以保护数据免受恶意输入。有关风险的简单解释和安全编写查询的一些PHP示例代码,请参见。无论如何,这是一个单独的问题。关于这个问题…你能再清楚一点吗?代码正在托管的Web服务器上运行,并希望通过forwaring端口连接到本地数据库,对吗?当您的连接尝试失败时,您会得到什么确切的错误?尝试失败后调用mysql_error()会告诉您。您是否已将mysql本身(以及相关用户帐户)配置为侦听远程连接以及设置端口转发?请注意,如果您要连接mysql,则无论从何处连接,都使用端口3306。端口80用于HTTP通信。用户名应该是root(虽然我个人不允许任何人以root身份远程连接,而是创建一个具有此任务所需权限并配置为远程访问的新帐户)。请注意,您必须配置mysql以接受来自不同ip的连接。通常它被配置为只允许本地连接谢谢大家。在phpMyAdmin中,我已将根主机设置为所有“%”。我已成功地使用测试了我的端口转发,因此我认为端口转发工作正常。此外,在我的路由器配置中,端口会转发到数据库所在的计算机。