Я запускаю два докер-контейнера: один — mysql db, а другой — приложение flask. Проблема в том, что когда я имитирую миграцию, я получаю сообщение об ошибке «Отказано в доступе для пользователя», за которым следует IP-адрес контейнера flask (MySQLdb). ._Exceptions.OperationalError) (1045, «Доступ запрещен для пользователя 'alex'@'172.18.0.3' (с использованием пароля: ДА)»)
вот что я пробовал:
Создал нового пользователя вместо root, установил привилегии и новый пароль.
Добавлены оба контейнера, mysql и flask, в мостовую сеть.
Добавлен адрес-bind = 0.0.0.0
Пытался подключитесь изнутри контейнера фляги вручную, и это сработало каким-то образом это интересно.
Проблема, с которой я столкнулся, заключается в том, что я постоянно получаю сообщение об ошибке, что доступ моему пользователю запрещен, и он дает мне IP-адрес контейнера фляги, что странно и я добавил этот конкретный IP-адрес в качестве хоста в mysql.user, но все равно безуспешно, а также добавил пользователя с «%» и localhost, но все равно безуспешно.
Вот ошибка: sqlalchemy.exc.OperationalError: (MySQLdb._Exceptions.OperationalError) (1045, «Доступ запрещен для пользователя 'alex'@'172.18.0.3' (с использованием пароля: ДА)»)
docker файл:
FROM python:3.10.9
ENV PYTHONBUFFERED 1
WORKDIR /app
COPY requirements.txt /app/requirements.txt
RUN pip install -r requirements.txt
COPY ./ app
CMD ["python", "main.py"]
Файл создания Docker:
services:
backend :
environment:
- FLASK_APP=main.py
build:
context: .
dockerfile: Dockerfile
ports:
- 8001:5000
volumes:
- .:/app
depends_on:
- db
db:
image: mysql:8.0.39
restart: always
environment:
MYSQL_DATABASE: main
#MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_USER: alex
MYSQL_PASSWORD: root_password
MYSQL_ROOT_PASSWORD: root_pass
volumes:
- .dbdata:/var/lib/mysql
ports:
- 33069:3306
приложение основной колбы:
from flask import Flask
from flask_cors import CORS
from flask_migrate import Migrate
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import UniqueConstraint
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://alex:root_password@db:3306/main'
CORS(app)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
print(app.config['SQLALCHEMY_DATABASE_URI'])
class Product(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=False)
title = db.Column(db.String(200))
image = db.Column(db.String(200))
class ProductUser(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer)
product_id = db.Column(db.Integer)
UniqueConstraint('user_id', 'product_id', name='product_user_unique')
@app.route('/')
def index():
return 'Hello'
print(app.config['SQLALCHEMY_DATABASE_URI'])
if __name__ == '__main__':
app.run(debug=True , host='0.0.0.0')
Подробнее здесь: https://stackoverflow.com/questions/793 ... -container
Доступ запрещен для контейнера пользовательской колбы ⇐ Python
Программы на Python
-
Anonymous
1736138905
Anonymous
Я запускаю два докер-контейнера: один — mysql db, а другой — приложение flask. Проблема в том, что когда я имитирую миграцию, я получаю сообщение об ошибке «Отказано в доступе для пользователя», за которым следует IP-адрес контейнера flask (MySQLdb). ._Exceptions.OperationalError) (1045, «Доступ запрещен для пользователя 'alex'@'172.18.0.3' (с использованием пароля: ДА)»)
вот что я пробовал:
Создал нового пользователя вместо root, установил привилегии и новый пароль.
Добавлены оба контейнера, mysql и flask, в мостовую сеть.
Добавлен адрес-bind = 0.0.0.0
Пытался подключитесь изнутри контейнера фляги вручную, и это сработало каким-то образом это интересно.
Проблема, с которой я столкнулся, заключается в том, что я постоянно получаю сообщение об ошибке, что доступ моему пользователю запрещен, и он дает мне IP-адрес контейнера фляги, что странно и я добавил этот конкретный IP-адрес в качестве хоста в mysql.user, но все равно безуспешно, а также добавил пользователя с «%» и localhost, но все равно безуспешно.
Вот ошибка: sqlalchemy.exc.OperationalError: (MySQLdb._Exceptions.OperationalError) (1045, «Доступ запрещен для пользователя 'alex'@'172.18.0.3' (с использованием пароля: ДА)»)
docker файл:
FROM python:3.10.9
ENV PYTHONBUFFERED 1
WORKDIR /app
COPY requirements.txt /app/requirements.txt
RUN pip install -r requirements.txt
COPY ./ app
CMD ["python", "main.py"]
Файл создания Docker:
services:
backend :
environment:
- FLASK_APP=main.py
build:
context: .
dockerfile: Dockerfile
ports:
- 8001:5000
volumes:
- .:/app
depends_on:
- db
db:
image: mysql:8.0.39
restart: always
environment:
MYSQL_DATABASE: main
#MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_USER: alex
MYSQL_PASSWORD: root_password
MYSQL_ROOT_PASSWORD: root_pass
volumes:
- .dbdata:/var/lib/mysql
ports:
- 33069:3306
приложение основной колбы:
from flask import Flask
from flask_cors import CORS
from flask_migrate import Migrate
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import UniqueConstraint
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://alex:root_password@db:3306/main'
CORS(app)
db = SQLAlchemy(app)
migrate = Migrate(app, db)
print(app.config['SQLALCHEMY_DATABASE_URI'])
class Product(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=False)
title = db.Column(db.String(200))
image = db.Column(db.String(200))
class ProductUser(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer)
product_id = db.Column(db.Integer)
UniqueConstraint('user_id', 'product_id', name='product_user_unique')
@app.route('/')
def index():
return 'Hello'
print(app.config['SQLALCHEMY_DATABASE_URI'])
if __name__ == '__main__':
app.run(debug=True , host='0.0.0.0')
Подробнее здесь: [url]https://stackoverflow.com/questions/79332084/access-denied-for-user-flask-container[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия