【发布时间】:2022-07-20 03:24:47
【问题描述】:
在本地运行 Django 版本 4:
manage.py runserver 127.0.0.1:8000
在 Docker 容器中运行 MySQL/MariaDB:
docker run -p 3306:3306 --name $(DATABASE_NAME) -v /tmp/mysql:/var/lib/mysql -e MYSQL_DATABASE=$(DATABASE_NAME) -e MYSQL_USER=$(DATABASE_USER) -e MYSQL_ROOT_PASSWORD=$(DATABASE_PASSWORD) -d mariadb:latest > /dev/null
错误
django.db.utils.OperationalError: (2013, "Lost connection to MySQL server at 'reading initial communication packet', system error: 2")
我可以使用 MySQL Workbench 以及命令成功连接到数据库:
mysql -h 127.0.0.1 -P 3306 -u root -p <database>
我正在从 Makefile 启动 Django 和 MySQL/MariaDB Docker 容器。
生成文件
SHELL := /bin/bash
.PHONY: dj-start-local
dj-start-local: start-mysql
PYTHONPATH=. django_project/src/manage.py runserver 127.0.0.1:8000
.PHONY: start-mysql
start-mysql:
docker run -p 3306:3306 --name $(DATABASE_NAME) -v /tmp/mysql:/var/lib/mysql -e MYSQL_DATABASE=$(DATABASE_NAME) -e MYSQL_USER=$(DATABASE_USER) -e MYSQL_ROOT_PASSWORD=$(DATABASE_PASSWORD) -d mariadb:latest > /dev/null
【问题讨论】:
标签: mysql django docker mariadb