【发布时间】:2018-06-07 08:04:45
【问题描述】:
我对docker很陌生,现在我正在尝试通过docker-compose在docker中使用mariadb运行django,但我总是收到这个错误:
我使用Docker version 17.09.1-ce, build 19e2cf6,docker-compose version 1.18.0, build 8dd22a9
django.db.utils.OperationalError: (2003, 'Can\'t connect to MySQL \'mariadb55\' 上的服务器 (111 "Connection denied")')
我可以在本地或远程运行docker-compose up db后正确连接db,我什至可以在anaconda虚拟环境中正确运行python manage.py runserver 0.0.0.0:6001通过设置参数来连接docker中的db服务settings.py 文件如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test',
'USER': 'belter',
# 'HOST': 'mariadb55',
'HOST': '127.0.0.1',
'PORT': '3302',
'PASSWORD': 'belter_2017',
'default-character-set': 'utf8',
'OPTIONS': {
'sql_mode': 'traditional',
}
}
}
这是我的 docker-compose.yml 文件
version: '3'
services:
db:
image: mariadb:5.5
restart: always
environment:
- MYSQL_HOST=localhost
- MYSQL_PORT=3306
- MYSQL_ROOT_HOST=%
- MYSQL_DATABASE=test
- MYSQL_USER=belter
- MYSQL_PASSWORD=belter_2017
- MYSQL_ROOT_PASSWORD=123456_abc
volumes:
- /home/belter/mdbdata/mdb55:/var/lib/mysql
ports:
- "3302:3306"
web:
image: onlybelter/django_py35
command: python3 manage.py runserver 0.0.0.0:6001
volumes:
- /mnt/data/www/mysite:/djcode
ports:
- "6001:6001"
depends_on:
- db
links:
- db:mariadb55
我几乎尝试了所有我能找到的东西,但仍然无法弄清楚,任何帮助都会很好!
我尝试过的:
Docker compose mysql connection failing
【问题讨论】:
-
docker-compose.yml文件中的 MySQL 服务在哪里? -
我用
mariadb,它们是一样的。 -
您能否提供用于从 Web 连接到数据库的 url。
-
@yamenk 什么网址?
标签: mysql django docker docker-compose mariadb