簡體   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