簡體   English   中英

無法遠程連接到dockerized的mysql數據庫

[英]Unable to connect to dockerized mysql db remotely

在我的AWS ec2服務器上,我安裝了docker 1.9.1 在基於ubuntu:trusty官方docker映像的映像test_image ,我嘗試設置LEMP(Linux,Nginx,MySQL,PHP)體系結構。

以下是我用來啟動容器的docker命令:

docker run --name test_1 -d -p 80:80 -p 3306:3306 test_image /bin/sh -c "while true; do echo daemonized docker container; sleep 5000; done"

我已經將端口803306暴露給主機的網絡接口,並且還允許AWS的安全組允許到這些端口的入站連接。 安全組中的連接類型是: MYSQL/Aurora ,協議是: TCP (我知道它不是很安全,僅用於初始實現。生產設置將有所不同)

我遵循了這個DigitalOcean教程: https ://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-14-04

安裝Nginx並啟動它之后,我可以通過ec2的公共IP在瀏覽器中對其進行測試,即http://xxx.xxx.xxx.xxx顯示了默認的Nginx歡迎頁面。

在安裝MySQL時,我在docker容器中遵循以下命令:

apt-get install mysql-server
mysql_install_db
/etc/init.d/mysql start
mysql_secure_installation

我已經為root用戶提供了密碼,並且在mysql_secure_installation期間,我允許遠程訪問root用戶。

從容器內部的mysql -u root -p命令將我連接到mysql db,但不是從容器外部。

同樣從我的本地機器上:我嘗試使用mysql-client: mysql -h xxx.xxx.xxx.xxx -u root -p

我收到以下錯誤: ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (111)

並通過mysql工作台,但我仍然無法連接到mysql數據庫。

我究竟做錯了什么?

在主機中,mysql的my.cnf將綁定地址設置為0.0.0.0,以便mysql在所有網絡接口上進行偵聽

bind-address = 0.0.0.0

默認配置為:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address   = 127.0.0.1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM