无法连接到Docker中的MySql。 访问拒绝错误抛出。 烧瓶的SQLAlchemy

好吧,所以一直试图让这个工作。 下面是我从头到尾运行的一系列命令,我得到了下面显示的Access denied...错误。

 $ docker-compose up --build -d $ docker exec -it flaskdocker_mysql_1 mysql -u root -p mysql> CREATE DATABASE flask_docker; mysql> CREATE USER `flask-docker`@`localhost` IDENTIFIED BY 'pass'; mysql> GRANT ALL PRIVILEGES ON flask_docker.* TO 'flask-docker'@'localhost'; mysql> exit Bye $ docker exec -it flaskdocker_web_1 python /usr/src/app/manage.py createdb # rest of traceback sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1045, u"Access denied for user 'flask-docker'@'flaskdocker_web_1.flaskdocker_default' (using password: YES)") 

这里是回购https://github.com/Amertz08/flask-docker

它看起来像SqlAlchemy引擎没有看正确的容器。 'flask-docker'@'flaskdocker_web_1.flaskdocker_default'是错误中显示的内容。

也许我不是很了解它,但我在我docker-compose.yml文件中链接mysql:mysql

 web: restart: always build: ./app volumes: - /usr/src/app/static expose: - "5000" environment: FLASK_CONFIG: 'production' links: - mysql:mysql command: /usr/local/bin/uwsgi --ini uwsgi.ini 

然后在我的configuration对象在config.py我有以下…

 MYSQL_USER = 'flask-docker' MYSQL_PASS = 'pass' MYSQL_HOST = 'mysql' MYSQL_DB = 'flask_docker' # Database info SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://{usr}:{passwd}@{host}/{db}'.format( usr=MYSQL_USER, passwd=MYSQL_PASS, host=MYSQL_HOST, db=MYSQL_DB ) 

任何帮助,将不胜感激。

看来问题出在那里:

mysql> GRANT ALL PRIVILEGES ON flask_docker.* TO 'flask-docker'@'localhost'; 您授予localhost用户的权限

但是,您使用mysql作为flask-docker'@'flaskdocker_web_1.flaskdocker_default用户。

为解决这个授予用户权限的瓶子docker'@'flaskdocker_web_1.flaskdocker_default用户