【问题标题】:Remotely connect to MySQL database that's hosted on AWS远程连接到托管在 AWS 上的 MySQL 数据库
【发布时间】:2014-08-22 18:25:09
【问题描述】:

我最近在运行 Ubuntu Linux 的 ec2 实例上安装了 LAMP 堆栈。我按照here 的说明进行操作。我还安装了phpmyadmin。据我所知,在安装 MySQL 时,当系统提示我回答问题 Disallow root login remotely? 时,我回答了 no,不过我可能弄错了。我在其他地方读到过,为了允许 root 远程登录,我需要在某处编辑 /etc 文件夹中的 mysql .conf 文件并编辑 bridge 设置。

我已尝试通过以下操作进行连接:

$con = mysqli_connect('ec-2 ip address', 'root', 'root', 'db_name');

if(mysqli_connect_errno($con)) {
    echo mysqli_connect_error($con);
    die;
}

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

Can't connect to MySQL server on '54.201.165.105' (61) 

【问题讨论】:

  • 默认情况下,ec2 实例上的所有端口都是文件墙。你为 MySQL (TCP 3306) 做了例外吗?
  • 不,我没有。我该怎么做?
  • 好的,我相应地编辑了入站规则,但仍然无法连接。
  • 嗯。什么错误?

标签: mysql remote-access


【解决方案1】:

在做了一些研究之后,我最终自己回答了这个问题。事实证明,安全组 pn AWS 与该问题无关。我必须转到/etc/mysql/my.cnf 的文件并注释掉bind_address = 127.0.0.1 的行。然后我必须在 phpmyadmin 中执行一条如下所示的 SQL 语句

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

感谢所有的帮助,伙计们。我很感激。

【讨论】:

    【解决方案2】:

    您需要修改实例的 AWS 安全组并设置防火墙规则以允许 3306 入站流量以及修改操作系统防火墙规则以允许相同的流量。

    【讨论】:

      猜你喜欢
      • 2014-03-17
      • 2022-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-08
      • 2021-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多