Sur*_*ran 3 mysql linux amazon-ec2 docker
在我的AWS ec2服务器上我已经docker 1.9.1安装了。在test_image基于ubuntu:trusty官方 docker 镜像的镜像中,我尝试设置 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"
Run Code Online (Sandbox Code Playgroud)
我已将端口80和3306主机的网络接口公开,并且还允许 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
Run Code Online (Sandbox Code Playgroud)
我已经为我的root用户提供了一个密码,并且在mysql_secure_installation我允许远程访问 root 用户期间。
mysql -u root -p 来自容器内部的命令将我连接到 mysql 数据库,但不能从容器外部连接。
同样来自我的本地机器:我尝试使用 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 db。
我究竟做错了什么?
在您的主机 mysql 的 my.cnf 中,将绑定地址设置为 0.0.0.0,以便 mysql 侦听所有网络接口
bind-address = 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
默认配置是:
# 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10097 次 |
| 最近记录: |