赞
踩
我正在努力将一个Django 1.5.x应用程序容器化,该应用程序通过ODBC连接到单独服务器上的MySQL数据库:
[mysql_default]
database = DB_NAME
driver = /usr/lib64/libmyodbc5.so
server = REMOTE_DB_SERVER
user = DB_USER
password = DB_USER_PWD
port = 3306
我可以在本地机器(docker之外)上运行Django应用程序,通过端口转发和远程数据库连接到远程数据库. SSH:
ssh -L 3307:127.0.0.1:3306 MYID@REMOTE_DB_SERVER
我使用Centos 6.x为应用程序设置了Docker容器,但无法使MySQL连接正常工作.容器已安装MySQL并运行mysqld.
我的docker-compose.yml文件如下所示:
version: "2"
services:
web:
build: .
image: MY_IMAGE
container_name: MY_CONTAINER
network_mode: "host"
ports:
- "3307:3306"
command: /bin/bash
在容器运行的情况下,我可以执行以下命令(在容器外部)以在远程数据库上显示数据库:
docker exec MY_CONTAINER echo "show databases" | mysql -u DB_USER -pDB_USER_PWD -h 127.0.0.1 --port=3307
但是从容器内部,相同的命令失败:
echo "show databases" | mysql -u DB_USER -pDB_USER_PWD -h 127.0.0.1 --port=3306
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。