Я пытаюсь подключить свое приложение к моей mysql базе данных, которую я запустил и запускаю в docker -композитном файле. Я использую flask и пытаюсь подключиться с помощью DBUtils. Я получаю сообщение об ошибке, описанное в моем заголовке:
(py mysql .err.OperationalError: (2003, "Не удается подключиться к MySQL сервер на 'db' ([имя_сервера 8] не указано или не указано имя узла или имя сервера) "))
Я пытался использовать IP-адреса моих экземпляров docker, а также несколько других решений в аналогичные проблемы, обсуждаемые здесь в StackOverflow: Docker -Compose не может подключиться к MySQL
Подключение к MySQL из Flask приложения с использованием docker -compose .
однако предлагаемые решения, похоже, не работают для меня.
мой docker -компонентный файл выглядит следующим образом:
version: '3.3'
services:
db:
image: mysql:8.0
container_name: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 'myPassword'
MYSQL_DATABASE: 'databaseName'
volumes:
- .:/dockerFiles
ports:
- "3306:3306"
expose:
- "3306"
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
restart: always
ports:
- "8080:80"
volumes:
- /sessions
и моя строка подключения выглядит следующим образом:
def connect_db():
# Connects to the database and takes care of the connection
return PersistentDB(
creator=pymysql, host='db',
user='root', password='myPassword', database='databaseName', port=3306,
autocommit=True, charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)