gpt4 book ai didi

mysql - 如何使用 Docker compose 修复“"Table ' Performance_schema.session_variables”不存在”?

转载 作者:行者123 更新时间:2023-11-29 10:42:21 24 4
gpt4 key购买 nike

我目前正在开始使用docker-compse进行实验。我创建了一个最小的 Flask + MySQL Web 服务,无需 Docker 即可完美运行。现在我想看看如何使用 Docker 简化部署。

我的docker-compose.yml看起来像这样:

version: '3'
services:
web:
build: .
command: app.py
ports:
- "8082:8082"
volumes:
- .:/code
links:
- db
hostname: myappserver
environment:
- MYSQL_ROOT_PASSWORD=p@ssw0rd123
- MYSQL_DATABASE=flask_db
- MYSQL_HOST=db
- MYSQL_PORT=3306
db:
image: mysql
ports:
- "3307:3306"
environment:
- MYSQL_ROOT_PASSWORD=p@ssw0rd123
- MYSQL_DATABASE=flask_db
- MYSQL_HOST=mysqlserver

当我运行sudo docker-compose up --build时,我得到了

web_1  | sqlalchemy.exc.ProgrammingError: (mysql.connector.errors.ProgrammingError) 1146 (42S02): Table 'performance_schema.session_variables' doesn't exist [SQL: "SHOW VARIABLES LIKE 'sql_mode'"]
db_1 | 2017-07-21T22:27:26.553761Z 3 [Note] Aborted connection 3 to db: 'flask_db' user: 'root' host: '172.18.0.3' (Got an error reading communication packets)

问题是什么以及如何解决?

(完整的项目在这里:https://github.com/MartinThoma/flask_mysql_dockerized - 它真的很小)

没有重复

  • 1 :我知道如果这是在我的机器上,我可以使用 mysql_upgrade -u root -p --force 和/etc/init.d/mysql start 修复它。但使用 docker compose 的目的是让启动 Web 服务变得非常简单。一声令下。如果我必须告诉用户登录容器,运行这些命令,重新启动另一个容器..那么我可以简单地要求他将其安装在主系统上/手动运行 docker 容器。

所以这是我修复它的方法,我希望这可以减少手动完成:

Start the containers:
# docker-comopse up

Find the container ID of the mysql image:
# docker container ls

Enter the container
# sudo docker exec -it 4f7d3f0763ad bash

Upgrade
# mysql_upgrade -u root -p --force

Exit the container, then restart
# docker-compose up

Initialize the database:
# cd /docker-entrypoint-initdb.d/
# mysql -h localhost -u root -p
mysql> source flask_db.sql;

最佳答案

您需要将数据库添加到您的 mysql 服务:

volumes:
- ./flask_db.sql:/docker-entrypoint-initdb.d/flask_db.sql

提示:建议使用较小的图像,这样您的图像只需要基本组件,而没有额外的非必要内容。

关于mysql - 如何使用 Docker compose 修复“"Table ' Performance_schema.session_variables”不存在”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45247634/

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