php - 无法连接到远程 MySQL 服务器(使用默认服务器代替)

标签 php mysql mysqli debian

我正在尝试从我的 VPS 连接到 AWS MySQL 服务器,但无论我尝试什么,我都会被拒绝访问,我的用户有权从任何主机进行连接。

如果我尝试通过 PHP 连接:

$db = new mysqli('mysite.cufncdsjslka.us-east-1.rds.amazonaws.com', 'my_user', 'my_pass', 'my_db');

给我:警告:mysqli::mysqli(): (28000/1045):/home/me 中的用户“my_user”@“XXXX.myhost.com”(使用密码:YES)访问被拒绝第 4 行/shopify/libraries/db.lib.php

如果我尝试通过 MySQL CLI 连接:

mysql -h mysite.cufncdsjslka.us-east-1.rds.amazonaws.com -umy_user -p

给我: 错误 1045 (28000):用户“my_user”@“xxxx.myhost.com”访问被拒绝(使用密码:YES)

此命令在我的 PC 上完美运行,但在我的 VPS 上运行不佳。

我假设这是某种安全设置阻止 MySQL 使用外部服务器?

我的 VPS 正在运行 Debian squeeze,其中的 LAMP 组件全部来自标准 Debian 软件包,除了我手动更新到 5.4 的 PHP 之外。

我将其作为一个新问题发布,因为我在 SO 上发现的大多数类似问题都是权限问题(我已授予我的 MySQL 用户从任何主机连接的权限)或 SELinux 问题(AFAIK 没有) t 适用于 Debian)

最佳答案

好的。

由于多种不同的原因,我已经多次看到这个问题。由于我看不到您的服务器或日志,因此我从信息中猜测可能存在绑定(bind)地址问题。

在my.cnf中检查

bind-address=YOUR-SERVER-IP 

将其更改为您的mysql服务器的IP地址,例如81.92.33.45

此后重新启动 mysql。如果您仍然无法连接,请告诉我日志中的错误信息,我会再次查看。

其次确保 iptables 不会引起问题。

iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

关于php - 无法连接到远程 MySQL 服务器(使用默认服务器代替),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15916590/

相关文章:

javascript - 使用 javascript 提交表单数据(无需重新加载页面)

php - 使用字符串调用 php 方法

php - 当对两列使用 mysqli_multi_query 时,排序无法正常工作

php - mysqli中的mysql_result替换

php - 在数据库中存储关键字的好方法是什么?

PHP/Perl 代码从任意 TSV 文件创建 mysql 表

php - AJAX 响应 PHP、mysql 问题

mysql - SQL集划分

php - 如何从mysql表中选择数据,然后将其放入html表中

php - Database_Exception [2]:mysqli_connect():服务器向客户端发送了未知的字符集(255)。请向开发商报告