php - 连接到不同服务器上的 MySQL

标签 php mysql mysql-error-1045

我有两台服务器(虚拟机 - 我可以远程连接到它们)- 服务器 1 和服务器 2。

在服务器 1 上,我保留我的网页,在服务器 2 上,我保留数据库。

我目前正在尝试从服务器 1 连接到服务器 2 上的数据库。

这是我的 PHP 代码:

<?php
            $dbhost = 'xxx.xx.xx.xx:xxxx';
            $dbuser = 'xxxxxx';
            $dbpass = 'xxxxxx';

            $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql' . mysql_error());


            $dbname = 'database';
            mysql_select_db($dbname);
?>

这是我尝试连接时收到的错误消息:

Access denied for user 'xxxxxx'@'server1' (using password: YES)

考虑到我正在尝试连接到服务器 2,我发现它说 @server1 有点令人费解。任何人都可以提供任何见解吗?

谢谢

PS: 他们都是windows 2008

最佳答案

MySQL 在确定是否授予访问权限时会考虑连接客户端的主机名。给定的用户名可能被允许从托管数据库的同一台机器(即本地主机)登录,但在从远程系统使用时不允许连接。

在您的情况下,听起来用户“xxxxxx”未获得从“server1”连接的授权。您可以从所有主机 ('%') 授予用户 'xxxxxx' 登录权限。但是,将该帐户的登录权限限制为它需要的特定主机(“server1”)或主机范围(“%.mydomain.com”或“144.155.166.0/255.255.255.0”)会更安全被使用。

有关 MySql 身份验证过程这一方面的更多信息,请参阅 http://dev.mysql.com/doc/refman/5.0/en/connection-access.html .

关于php - 连接到不同服务器上的 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3760032/

相关文章:

PHP/MySQL 查询电子邮件地址时出错

php - 更新第二行之后的所有行,通过向这些行添加 1

PHP 为 foreach() 循环提供的参数无效

MySQL 使用 MAX 进行 JOINS 更新

mysql - Wamp phpMyAdmin密码问题

mysql 访问被拒绝,ssh 数据库主机

php - mysql_connect() : Access denied for user 'user' @'localhost'

php - Laravel:仅为相关模型加载嵌套关系

javascript - 从文件夹中提取所有图像并创建 Bootstrap 轮播/幻灯片

mysql - 如何获取特定列中非 NULL 行的百分比?