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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值