gpt4 book ai didi

mysql - 如何为docker mysql实例的root用户重新分配 'host'

转载 作者:行者123 更新时间:2023-11-29 15:12:06 25 4
gpt4 key购买 nike

我有两个 docker 实例,一个用于 API,一个用于项目的数据库。我能够毫无问题地运行两者,但今天我无法运行。数据库实例构建没有问题,但由于以下错误,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 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

所以,我有几个问题:

  1. 知道 API 实例的 IP 为何发生变化吗?我假设它发生了变化,因为从昨天起它就可以毫无问题地连接。

  2. 有没有办法通过 docker-compose/Makefile 解决这个问题?我能够通过 ssh 进入数据库实例并手动更改主机,但这显然是不可持续的。

  3. 有没有办法将API实例的IP更改为localhost

提前致谢。

最佳答案

可能是您的 IP 容器的 IP 已更改,这就是您无法连接的原因,请先验证这一点。

您可以添加可以从任何 IP 连接到您的数据库的用户。

关于mysql - 如何为docker mysql实例的root用户重新分配 'host',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59983356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com