连接docker启动的mysql,作为数据库

321 阅读1分钟

环境:ubuntu 20.04 python 3.7 mysql 5.7

从dockerhub pull mysql的官方镜像,并启动

可以直接使用命令

docker run --name some-mysql -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d -p 3306:3306 mysql:tag

其中–name是启动容器的名字,-v表示挂载的目录(做持久化存储使用,容器中产生的文件保存到挂载的目录中,前面是本机路径后面是容器内路径),-e设置环境变量设置数据库密码(这个密码是root帐号的密码),-d表示在后台托管,-p表示暴露端口容器内的3306对应宿主机的3306,tag表示mysql的版本(我这里用的是5.7)
详细的文档可以点这里

创建项目并连接

我这里使用的web框架是python写的django,版本2.2
其中重点是host,因为mysql是容器启动的,容器会在宿主机中生成1个ip地址,这个host就填写docker的ip地址
查看ip地址linux ifconfigwindowsipconfig
方框中就是的使用docker启动的mysql容器的虚拟ip地址
在这里插入图片描述
django mysql的配置

DATABASES = {
    "default": {
      "ENGINE': 'django.db.backends.mysql",
      "NAME": "mysql",
      "USER": "root",
      "PASSWORD": "12345678",
      "HOST": "172.17.0.1",
      "PORT": "3306"
    }
}