当前位置:   article > 正文

docker访问外部数据库_从docker容器连接到远程MySQL数据库

docker内应用访问外部mysql

我正在努力将一个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)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/388869
推荐阅读
相关标签
  

闽ICP备14008679号