繁体   English   中英

只是无法远程连接到MySQL EC2 ubuntu实例

[英]Just can't connect to MySQL EC2 ubuntu instance remotely

我知道有几个线程可以解决这个问题,但是我已经尝试了一切,并且尽我所能-我只想能够连接到EC2上托管的MySQL数据库。

  1. 我已将端口3306添加到EC2上实例的安全组。

  2. 我从my.cnf文件中删除了bind_address(默认情况下不再使用跳过网络)并重新启动MySQL。 我也尝试了bind_address =(外部IP,以54开头)和bind_address = 0.0.0.0。

  3. UFW状态为无效。

  4. 服务器上,运行:

    mysql -u remote-user -p -h MY_EXTERNAL_IP

作品! 但这对我的客户不起作用,我得到:

`ERROR 2003 (HY000): Can't connect to MySQL server on 'MY_EXTERNAL_IP' (111)`
  1. 我使用以下方法创建了当前的MySQL用户:

    GRANT USAGE ON *.* TO 'remote-user'@'localhost' IDENTIFIED BY 'password';

    GRANT USAGE ON *.* TO 'remote-user'@'%' IDENTIFIED BY 'password';

  2. 我什至跑了:

    sudo iptables -P INPUT ACCEPT

    sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

    sudo iptables -I INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

  3. Telnet无法连接:

    echo X | telnet -e X MY_EXTERNAL_IP 3306 echo X | telnet -e X MY_EXTERNAL_IP 3306 telnet: Unable to connect to remote host: Connection refused

但是它确实连接到ssh端口:

Trying 54.221.103.104...
Connected to 54.221.103.104.

netstat -a | grep 'mysql' netstat -a | grep 'mysql'给出:

tcp        0      0 *:mysql                 *:*                     LISTEN     
unix  2      [ ACC ]     STREAM     LISTENING     20762    /var/run/mysqld/mysqld.sock

拜托,我快要死了。 我只是想不通这是怎么回事,我已经研究了好几个小时。

/etc/mysql/my.cnf中的/etc/mysql/my.cnf行表示: bind-address 127.0.0.1这是原因,我花了大约20-30分钟来弄清楚为什么在禁用防火墙的情况下会发生这种情况:)这行使您的服务器可以监听仅用于从此端口上的本地主机的调用。 当然,这之后您必须重新启动mysql服务。

将/etc/mysql/my.cnf中的绑定地址从127.0.0.1更改为0.0.0.0已解决了我的问题,并且我能够在端口3306上远程TELNET而没有问题。

还要确保您的mysql用户不仅设置为本地mysql用户,而且具有适当的特权。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM