【问题标题】:Unable to connect to MySQL from Ejabberd installed in Ubuntu machine. AWS - EC2无法从安装在 Ubuntu 机器上的 Ejabberd 连接到 MySQL。 AWS-EC2
【发布时间】:2014-06-05 00:54:30
【问题描述】:

我已经在 Ubuntu 机器(Amazon EC2 机器)上安装了 Ejabberd。我有另一台机器,它是 Windows 服务器,我正在其中运行 MySQL。该服务已启动并正在运行。

但由于某些原因,当我启动 Ejabberd 时,我无法连接到 Windows 机器上的 MySQL db。我确保端口已打开(来自 MYSQL 机器的 3306)。

此外,所有必需的梁文件都在 Ejabberd Ubuntu 机器中配置。不知道为什么我无法连接到 MySQL。我在日志中得到的错误如下。任何帮助都会很棒。我已将 Windows 机器中的安全组配置为也接受对端口 3306 的请求。仍然无法连接。感谢您的帮助

=ERROR REPORT==== 2014-04-21 00:38:16 ===
E(<0.1005.0>:ejabberd_odbc:542) : mysql_conn: Failed connecting to "172.31.15.211":3306        : {error,
                                                                                           "timeout"}

=ERROR REPORT==== 2014-04-21 00:38:16 ===
E(<0.292.0>:ejabberd_odbc:542) : mysql_conn: post_start timeout


=INFO REPORT==== 2014-04-21 00:38:16 ===
I(<0.292.0>:ejabberd_odbc:216) : mysql connection failed:
** Reason: "timed out"
** Retry after: 30 seconds

=WARNING REPORT==== 2014-04-21 00:38:16 ===
W(<0.292.0>:ejabberd_odbc:281) : unexpected info in connecting: {mysql_conn,
                                                             <0.1014.0>,
                                                             {error,
                                                              connect_failed}}

【问题讨论】:

    标签: mysql ubuntu amazon-web-services amazon-ec2 ejabberd


    【解决方案1】:

    我认为你应该检查你的mysql配置文件my.ini在windows案例中的文件

    • 找到你的 my.cnf 或 Windows 的 my.ini 文件 在 my.ini 中找到这些设置,注释掉 #skip-networking 并在您的情况下绑定您的 IP 地址

      绑定地址 = 0.0.0.0(您的 IP)

    您应该授予该用户在 mysql 中连接的权限

    GRANT ALL ON DatabaeName.* TO DBUser@'%' IDENTIFIED BY 'PASSWORD';
    flush privileges;
    

    重启你的mysql,告诉我怎么回事

    【讨论】:

    • @abaid778- 非常感谢您的回复。我从早上开始刷新这个页面。 #skip-networking 已在 my.ini 文件中注释。此外,我无法在 my.ini 中找到行绑定地址。请让我知道我是否需要添加一行。另外,我已经执行了 GRANT ALL sql。再次感谢,请让我知道如何继续。
    • 已添加行绑定地址。仍然面临同样的问题。任何解决此问题的提示都会有所帮助。
    • 要添加有关该问题的更多信息,这 2 台机器是托管在同一 VPC 中的 AWS EC2 机器。已确保运行MYSQL服务器的windows机器已打开3306并相应修改入站规则。
    • @Timothy Rajan... 确保 mysql 已重新启动。是的,您需要添加 bind-address = 0.0.0.0 并检查端口号 3306。现在我们应该开始解决问题。就像首先检查窗口机器上的开放端口一样。让我知道您是否看到 3306 打开的窗口命令是 netstat -a 。第二个来自您的 ubuntu 机器的 telnet 命令应该是 telnet HOSTIP 3306。请检查结果。让我知道 。还有一件事确保您在 mysql 中授予用户权限以远程访问我之前提到的 GRANT ALL ON DatabaeName.* TO DBUser@'%' IDENTIFIED BY 'PASSWORD';
    • @adaid778 - 非常感谢。取得了重大突破。我必须承认我是一个 Windows 人,而 telnet 救了我的命。问题是我无法从 DB 联系 mysql 服务器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 2015-10-31
    • 2020-10-19
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    相关资源
    最近更新 更多