我最近在Windows家庭计算机上配置了一个MySQL服务器。此外,我还创建了一个使用0fees.net的网站 - 一个免费的托管服务提供商,该服务提供商提供了一个包括PHP支持,FTP文件托管,自己的MySQL服务器等各种服务的vista面板。到本地MySQL服务器的网站连接
网站,我已经创建了一个“登录”PHP脚本,以便人们登录到我的网页。但是,我不想从在0fees.net上的cPanel上给予我的MySQL数据库读取数据,而是希望PHP登录脚本直接从我在家用计算机上配置的MySQL服务器读取。要做到这一点,我已经采取了多项措施:
1)使用MySQL服务器实例配置向导
在这种配置中配置MySQL的,我已经启用了TCP/IP网络上的3306端口(并启用了防火墙例外该端口)并启用了远程机器的根访问权限。
2)上的MySQL命令行的客户端,我已经通过使用授予远程访问能力,以其他单位:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
3)我已经转发端口3306到我的路由器(和已经使用的各种端口检查器确认它是开放的)
4)我创建了名为“login.php”的登录脚本,它位于我的站点的.htdocs目录中,并在我的网站主页上处理HTML登录表单。它尝试(并失败)连接到我的本地MySQL服务器。那PHP脚本的目的片段是:
$host="my_external_ip:3306"; // External IP of my computer and port to listen on
$username="root"; // Username specified in the GRANT command-line-client command
$password="password"; // Password specified in the GRANT command-line-client command
$db_name="logon"; // MySQL database name
$tbl_name="accounts"; // Table name within the database
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die(mysql_error());
mysql_select_db("$db_name")or die("cannot select DB");
当试图连接到MySQL割断,我得到一条错误消息:
Can't connect to MySQL server on 'my_external_ip' (4).
还应当指出的是,我成功能够通过端口3306使用相同的外部IP地址,从其他网络上的其他机器(使用Navicat进行测试)远程连接到本地MySQL服务器。有关我的网站为何无法连接的任何想法?
在此先感谢您的任何见解。
传入流量那么我可以告诉你,你的端口肯定是开并倾听(不良想法张贴你的知识产权就像那样)。 – 2011-06-14 20:30:21
此外,创建一个不同于超级用户的用户来自php的连接是一个很好的习惯......您应该为您的php连接创建一个具有受限特权的新用户 – Damp 2011-06-14 20:33:46
您的站点和本地站点之间是否存在代理? # – 2011-06-14 20:47:57