【问题标题】:Connecting to MySQL on a different server连接到不同服务器上的 MySQL
【发布时间】:2011-04-15 04:09:31
【问题描述】:

我有两台服务器(虚拟机——我可以远程连接到这些服务器)——服务器 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 上

【问题讨论】:

标签: php mysql mysql-error-1045


【解决方案1】:

在确定是否授予访问权限时,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

【讨论】:

  • 谢谢 Ben,这是最详细的答案,所以我会打勾。感谢所有回答的人!
【解决方案2】:

"Access denied for user 'xxxxxx'@'server1'" 表示 server1 无权访问 server2。您需要在 server2 上添加可以从 server1 连接的新用户(主机名:server1);

【讨论】:

    【解决方案3】:

    你需要为那台机器授予权限

    查看here

    【讨论】:

      【解决方案4】:

      删除此用户并使用 'xxxxxx'@'%' 创建一个新用户。在两台服务器上执行此操作。 @'%' 表示用户可以从任何地方连接。

      【讨论】:

        猜你喜欢
        • 2013-01-04
        • 1970-01-01
        • 2013-01-06
        • 1970-01-01
        • 2020-05-26
        • 1970-01-01
        • 2022-08-15
        • 2018-12-27
        • 1970-01-01
        相关资源
        最近更新 更多