【问题标题】:phpMyAdmin not working to connect to RDS from EC2 machine, out of ideasphpMyAdmin 无法从 EC2 机器连接到 RDS,没有想法
【发布时间】:2014-10-19 03:24:32
【问题描述】:

我有一个新的 EC2/RDS 设置。我遵循了大约 5 个不同的指南,但无法连接 phpMyAdmin。

首先,这不是安全组问题。我已经临时设置 RDS 服务器接受所有连接。我可以通过命令行使用 mysql 从 EC2 机器连接到它。

我从 EPEL 仓库安装了 phpMyAdmin。

我已经四次检查了我的 config.inc.php 文件。我相信它设置正确。

$i++;
$cfg['Servers'][$i]['host']          = 'xxx.us-west-1.rds.amazonaws.com'; // MySQL hostname or IP address
$cfg['Servers'][$i]['port']          = '3306';      // MySQL port - leave blank for default port
$cfg['Servers'][$i]['socket']        = '';          // Path to the socket - leave blank for default socket
$cfg['Servers'][$i]['connect_type']  = 'tcp';       // How to connect to MySQL server ('tcp' or 'socket')
$cfg['Servers'][$i]['extension']     = 'mysqli';    // The php MySQL extension to use ('mysql' or 'mysqli')
$cfg['Servers'][$i]['compress']      =  FALSE;       // Use compressed protocol for the MySQL connection
                                                    // (requires PHP >= 4.3.0)
$cfg['Servers'][$i]['controluser']   = '';          // MySQL control user settings
                                                    // (this user must have read-only
$cfg['Servers'][$i]['controlpass']   = '';          // access to the "mysql/user"
                                                    // and "mysql/db" tables).
                                                    // The controluser is also
                                                    // used for all relational
                                                    // features (pmadb)
$cfg['Servers'][$i]['auth_type']     = 'cookie'; 

不过,每次我尝试使用 phpMyAdmin 连接时,我都会收到 错误 #2003 无法登录到 MySQL 服务器

我真的没有想法。我卸载了 phpmyadmin 并尝试将所有文​​件手动放在 html 目录中,我得到了相同的结果。我尝试更改配置文件中的大部分设置(压缩、连接类型、auth_type),但没有成功。我不敢相信我一直在尝试让 phpMyAdmin 工作 2.5 小时,但没有成功。不知道发生了什么,所有的网络搜索都枯竭了……似乎只有我遇到了这个问题。

如果有人有任何想法可以帮助我解决这个问题,我将不胜感激。

【问题讨论】:

  • 您好,在phpmyadmin.net/home_page/support.php 中我们提到这类问题应该去serverfault.com。
  • MySQL 服务器日志是否显示连接尝试?您是否有 MySQL 命令行工具来尝试连接,例如 mysql -u root -p -h xxx.us-west-1.rds.amazonaws.com ?

标签: amazon-web-services amazon-ec2 phpmyadmin rds


【解决方案1】:

解决这个问题需要做几件事 - config.inc.php 中的一个更改,mysql 用户表中的另一个更改,以及 AWS 控制台上的另一个更改...

首先 /etc/phpMyAdmin/config.inc.php 中的主机应该分配给内部私有IP - 而不是外部IP。内部的可以从 AWS 控制台页面 - Dashboard -> EC2 -> Instances 中获取。选择右侧的实例并查看描述选项卡中的 Private IPs 字段并在 config.inc.php 中编辑以下行

$cfg['Servers'][$i]['host']  = xx.yy.zz.aa

第二 - mysql 需要知道来自 phpMyAdmin 页面的根登录请求实际上来自 AWS 内部 IP 地址 - 与上述 IP 地址相同,而不是外部 IP 地址 - 所以你需要使用 GRANT 命令更新 mysql 数据库上的“用户”表,如下所示

mysql -u root -p

use mysql

GRANT ALL PRIVILEGES ON *.* TO 'root'@'xx.yy.zz.aa' IDENTIFIED BY 'xxpassword';

将 xx.yy.zz.aa 替换为 EC2 提供的内部 IP 地址 用你的 mysql 的 root 密码替换 xxpassword

重启apache,你应该会很好:)

第三 - 允许来自所用安全组中 mysqlport 的传入连接...这是在 AWS 控制台上完成的。

Type = MYSQL
Protocol = TCP
Port  = 3306
Source = 0.0.0.0/0

【讨论】:

  • 没错。 AWS 将使用您需要在 RDS 上允许的私有 IP 地址
【解决方案2】:

您可以尝试在 phpMyAdmin 配置中添加以下设置并重试吗?

$cfg['Servers'][$i]['user'] = 'root'; //mysql username here
$cfg['Servers'][$i]['password'] = 'password'; //mysql password here

【讨论】:

  • 由于 Pez 的 auth_type 已经是 cookie,我不确定这会有什么不同。用户和密码字段仅用于 auth_type 配置。
【解决方案3】:

感谢您的回复。

对于因遇到相同问题而发现此讨论的任何人,Isaac Bennetch 留下了一条有用的评论,可以帮助您调试问题。

对我来说,我无法解决,但最终由于不同的原因我启动了另一个 EC2 实例,这一次 phpMyAdmin 立即工作。我不知道我的问题是什么,但希望没有其他人面临类似的问题。

【讨论】:

    【解决方案4】:

    有点晚了,但也许这会对某人有所帮助。我遇到了同样的问题,我只需要确保 MySQL 端口对 RDS 的安全组开放。 ..为我工作

    【讨论】:

      猜你喜欢
      • 2020-10-17
      • 2016-06-07
      • 2021-04-17
      • 2019-12-12
      • 2020-10-19
      • 2013-05-26
      • 2017-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多