MySQL 使用 XAMPP 连接到外部数据库
Posted
技术标签:
【中文标题】MySQL 使用 XAMPP 连接到外部数据库【英文标题】:MySQL connection to external database using XAMPP 【发布时间】:2017-10-15 19:16:27 【问题描述】:我存储了一个网络项目(php、html 和 CSS)。我在 opt/lampp/htdocs XAMPP 目录中工作,所以我可以使用网络浏览器运行 .php 文件。其中一个 .php 文件尝试连接到外部服务器 mysql 数据库,但是在运行时:
mysqli_connect($servername, $username, $userpassword);
它会显示以下警告。
*mysqli_connect(): (HY000/2002): Connection refused*
我尝试使用 phpmyadmin 和相应的凭据访问数据库,它工作正常。
所以问题是:我可以使用 XAMPP 执行 msqli_connect 到该外部数据库还是应该放弃?
提前致谢!
【问题讨论】:
试试mysqli_connect("external_ip", "my_user", "my_password", "my_db");
@Harikrishnan 这就是我尝试并触发警告的方法。我将编辑我的问题以包含该信息。你能想到更多吗?还是谢谢!
也许您需要将您的服务器上的本地公共 IP 地址列入白名单。
在终端发出这个命令并显示 O/P telnet server_ip 3306
@Harikrishnan 正在尝试 server_ip... telnet:无法连接到远程主机:连接被拒绝
【参考方案1】:
由于我的低分无法发表评论,所以我在这里回答。
我以前也遇到过类似的问题,所以分享一下我的经验。所有的 cmets 都提出了有价值的观点。它们如下:
-
使用 IP 地址代替服务器名称(可能存在一些 DNS 缓存问题,因此使用 IP 地址是安全的)。
确保您使用的 IP 地址未被服务器的防火墙阻止。如果可能,将服务器的防火墙配置为将您的 IP 地址列入白名单。
默认 MySQL 端口是 3306。确保防火墙配置为允许外部连接到端口 3306。
最重要的是,确保 MySQL 服务器必须配置为接受外部连接。如果上述所有设置都配置正确,那么您应该将外部访问权限和所有权限授予您的 MySQL 用户。
GRANT ALL PRIVILEGES ON 'yourDatabase'.* TO 'yourUserName'@'%';
FLUSH PRIVILEGES;
参考 - Another SO Question。
【讨论】:
以上是关于MySQL 使用 XAMPP 连接到外部数据库的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 10 上使用 XAMPP 连接到 MySQL 数据库的访问被拒绝
无法使用便携式 Xampp 通过 Django 连接到 MySQL