Docker容器连接外部Mysql的几种方案
前言
在Linux Centos上面部署Docker容器,并且将原来的项目服务放到docker的某个镜像中,启动服务号发现无法连接到容器所在宿主机的mysql数据库,但是现在项目服务需要连接mysql数据库。
例如:SQLalchemy
# 初始化数据库连接: TODO 参数化 engine = create_engine( f'mysql+mysqlconnector://{DB_USERNAME}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}') # 创建DBSession类型: DBSession = sessionmaker(bind=engine) # 创建session对象: session = DBSession()
但是在容器中项目localhost默认的是docker容器这个虚拟主机的ip,而我在docker该镜像容器中上面并没有安装mysql服务,
方案一:
使用宿主机的ip地址,docker有自己的ip,宿主机所在的Centos服务器也有自己的ip,如果把项目访问IP改为宿主机的ip。
输入ifconfig
替换上面的项目中访问mysql的地址即 localhost 替换好了之后启动容器。这是土办法,但遇到ip变动的window就不太可行。
方案二:
在docker配置文件yml中设置参数command
docker-compose.yml version: '3' services: mysql: restart: always image: mysql:5.7 container_name: mysql command: --default-authentication-plugin=mysql_native_password #解决外部无法访问 volumes: - ./mydir:/mydir - ./datadir:/var/lib/mysql - ./conf/my.cnf:/etc/my.cnf # 数据库还原目录 可将需要还原的sql文件放在这里 - /docker/mysql/source:/docker-entrypoint-initdb.d environment: - MYSQL_ROOT_PASSWORD=password - TZ=Asia/Shanghai ports: - 3306:3306
方案三:
如果mysql是非docker容器化部署,可以进行挂载外部mysql
docker run -p 3306:3306 --name mysql \ -v /usr/local/docker/mysql/conf:/etc/mysql \ -v /usr/local/docker/mysql/logs:/var/log/mysql \ -v /usr/local/docker/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:5.7
配置my.cnf信息
[mysqld] # 服务端字符集 character-set-server=utf8 collation_server = utf8_general_ci [client] # 客户端字符集 default-character-set=utf8
另有网友提供
找到my.cnf配置文件
注释掉 bind-address = 127.0.0.1,
重启mysql
总结
到此这篇关于Docker容器连接外部Mysql的几种方案的文章就介绍到这了,更多相关Docker容器连接外部Mysql内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Docker报错Operation not permitted问题的解决方法
刚开始接触Docker的朋友经常会遇到问题,下面这篇文章主要给大家介绍了关于Docker报错Operation not permitted问题的解决方法,需要的朋友可以参考下2023-02-02Docker aufs存储驱动layer、diff、mnt目录的区别介绍
这篇文章主要介绍了Docker aufs存储驱动layer、diff、mnt目录的区别,需要的朋友可以参考下2017-04-04浅谈docker运行nginx为什么要使用daemon off
这篇文章主要介绍了浅谈docker运行nginx为什么要使用daemon off,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-01-01Docker利用DockerFile创建部署NVIDIA+PyTorch容器的详细过程
这篇文章主要介绍了Docker利用DockerFile创建部署NVIDIA+PyTorch容器的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-06-06
最新评论