#python #mysql #sql #docker #pymysql
Вопрос:
Привет, ребята, я понимаю, что на эту тему много тем, однако я не смог найти ничего, что работает, и я полностью застрял.
мой файл Docker-Compose выглядит так :
version: "3.8"
services:
app:
build: .
ports:
- 9090:5000
links:
- db:database
db:
platform: linux/x86_64
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: unless-stopped
environment:
MYSQL_DATABASE: main
MYSQL_USER: root
MYSQL_PASSWORD: pass
MYSQL_ROOT_PASSWORD: pass
ports:
- 3306:3306
и я пытаюсь подключиться с помощью
def database_controller(cmd):
connection=db.connect(host="database", port=3306, user="root", password="pass", database="main")
with connection:
with connection.cursor() as cursor:
cursor.execute(cmd)
result = cursor.fetchall()
connection.commit()
connection.close()
return result
Это приводит к ошибке:
Комментарии:
1. Вы уверены, что у вас есть база данных под названием «главная»?
2. @user7065687 Вы знаете, чего я не думаю, я делаю, я думал, что строка MYSQL_DATABASE: main автоматически создает базу данных под названием main
3. Нет, это не так. Сначала вам нужно создать его самостоятельно.
4.
MYSQL_DATABASE
следует создать базу данных с таким именем, если это первый запуск контейнера базы данных (см. Раздел «Переменные среды» наmysql
странице изображения концентратора Docker . Однако на данный момент вам не нужна устаревшаяlinks:
опция, и сообщение об ошибке было бы гораздо более читабельным, если бы оно было в виде текста, а не изображения.