php - mysql_connect 未与正确的主机通信

标签 php mysql

我有以下问题。我们将 mysql 服务器移至另一台机器,因此 IP 发生了变化,但不知何故,系统日志机器上的脚本不会与新服务器通信。 我将其精简为以下代码来模拟问题

我的脚本

$link = mysql_connect("mysql.domain.tld", "<user>", "<pass>");
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';

当我执行脚本时它会返回

me@syslog:~# php test.php
Could not connect: Access denied for user '<user>'@'10.254.237.42' (using password: YES)

但是当我执行 ping 操作时

me@syslog:~# ping -c 1 mysql.domain.tld
PING mysql.domain.tld (10.254.235.31) 56(84) bytes of data.

它解析为完全不同的 IP(但正确的 IP)

所以我目前处于“等等-WHUT!!!”状态模式,因为我无法找出为什么它连接到错误的机器。所以我的问题是有没有办法让 mysql_connect 始终连接到 php.ini 或其他内容中的固定 IP/主机?

最佳答案

您尝试登录的用户没有从该主机连接的权限,在本例中为 10.254.237.42 。您需要将其添加为用户 <user> 的有效主机.

修改此并在 mySQL 机器上执行:

GRANT ALL PRIVILEGES ON *.* TO  ‘USERNAME’@‘IP’  IDENTIFIED  BY  ‘PASSWORD’;

也就是说,您可能不想授予用户所有权限。将其限制为特定数据库上的 SELECT、INSERT、UPDATE、DELETE 等...

您可能可以省略 IDENTIFIED BY部分。

完成此命令后,您需要运行 FLUSH PRIVILEGES登录时。

关于php - mysql_connect 未与正确的主机通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16104492/

相关文章:

javascript - 美国 map 拉斐尔插件自动更新和动态填充颜色

php - 通过 PHP 解析数组和对象 json - 提供的参数无效

php - Android:如何使用参数从mysql获取数据到sqlite

javascript - 如何从同一个类中的另一个方法检索最后插入的 id?

php - Mysql查询组合

PHP SQL 准备的选择查询不返回任何内容

php - 另一个 FizzBu​​zz 解决方案

PHP if/else 简写符号 - 多个条件

php - 迁移到新的 DBAL 但需要维护遗留数据库连接

mysql - 如何获取最后一笔付款以及帐户今天是否过期的支票?