1

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

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

我从 EPEL repo 安装了 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 小时,但没有成功。不知道发生了什么,所有的网络搜索都干涸了......似乎我是唯一遇到这个问题的人。

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

4

4 回答 4

2

解决这个问题需要做几件事 - 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 地址 - 所以您需要更新mysql数据库如下使用GRANT命令

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 地址 将 xxpassword 替换为 mysql 的 root 密码

重新启动apache,你应该很好:)

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

Type = MYSQL
Protocol = TCP
Port  = 3306
Source = 0.0.0.0/0
于 2014-10-18T19:24:32.017 回答
0

感谢您的回复。

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

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

于 2014-01-18T18:23:31.983 回答
0

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

于 2014-03-28T14:19:18.630 回答
0

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

$cfg['Servers'][$i]['user'] = 'root'; //mysql username here
$cfg['Servers'][$i]['password'] = 'password'; //mysql password here
于 2013-12-22T07:16:07.647 回答