Доступ запрещен для контейнера пользовательской колбыPython

Программы на Python
Ответить
Anonymous
 Доступ запрещен для контейнера пользовательской колбы

Сообщение 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')


Подробнее здесь: https://stackoverflow.com/questions/793 ... -container
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»