如何重新分配';主机';对于docker mysql实例的根用户
我有两个docker实例,一个用于API,一个用于项目的DB。我可以毫无问题地运行这两个程序,但今天我不能。DB实例生成时没有问题,但由于以下错误,API无法与其通信:如何重新分配';主机';对于docker mysql实例的根用户,mysql,django,docker,docker-compose,Mysql,Django,Docker,Docker Compose,我有两个docker实例,一个用于API,一个用于项目的DB。我可以毫无问题地运行这两个程序,但今天我不能。DB实例生成时没有问题,但由于以下错误,API无法与其通信: django.db.utils.OperationalError: (1130, "Host '172.x.x.x' is not allowed to connect to this MySQL server") 通过谷歌搜索,我检查了主机上的root用户,这给了我: SELECT host from mysql.user
django.db.utils.OperationalError: (1130, "Host '172.x.x.x' is not allowed to connect to this MySQL server")
通过谷歌搜索,我检查了主机上的root用户,这给了我:
SELECT host from mysql.user where User='root';
+-----------+
| host |
+-----------+
| localhost |
+-----------+
1 row in set (0.00 sec)
下面是docker compose.yml:
version: "3"
services:
db:
container_name: db
image: mysql:5.7
ports:
- "3336:3306"
environment:
MYSQL_ROOT_PASSWORD: ***
MYSQL_USER: ***
MYSQL_PASSWORD: ***
MYSQL_DATABASE: ***
restart: always
command:
[
"mysqld",
"--character-set-server=utf8mb4",
"--collation-server=utf8mb4_unicode_ci",
]
api:
container_name: api
build:
context: ../../
dockerfile: ./etc/docker/Dockerfile
ports:
- "8000:8000"
depends_on:
- db
restart: always
因此,我有几个问题:
localhost
提前感谢。您的IP容器的IP可能已更改,这就是您无法连接的原因,请先验证
您可以添加一个可以从任何ip连接到数据库的用户。如果我错了,请纠正我的错误,但我必须在每次构建容器时手动创建此用户。这对我来说不是很有用,但如果有一种方法可以自动化,它肯定会很有用。这个用户将自动创建,在容器的定义中,您应该这样做。