2016-08-26 11 views
3

これを動作させるにはしばらくお待ちください。ここでは最初から最後まで実行しているコマンドラインを示します。Access denied...エラーが表示されます。ここでDockerでMySqlに接続できません。アクセス拒否エラーがスローされました。 Flask-SqlAlchemy

$ 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)") 

は、レポはSQLAlchemyのエンジンが右コンテナを見ていないように見えますhttps://github.com/Amertz08/flask-docker

です。 'flask-docker'@'flaskdocker_web_1.flaskdocker_default'がエラーに表示されます。

たぶん...

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 
) 

上の任意のヘルプを私は右のそれを理解していないですが、私はその後config.pyの私のconfigオブジェクトに、私は次のように持っている私のdocker-compose.ymlファイル

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 

mysql:mysqlをリンクこれは非常に高く評価されます。

mysql> GRANT ALL PRIVILEGES ON flask_docker.* TO 'flask-docker'@'localhost'; あなたはlocalhostのユーザー

のための権限を付与しかし、あなたがflask-docker'@'flaskdocker_web_1.flaskdocker_defaultユーザーとしてMySQLを使用します。

+0

。 'flask_docker'と呼ぶ必要はありません。また、 'mysql:mysql'の代わりに' mysql'だけを言うこともできます。後者の形式は、別の名前(例えば、 'mysql:flask_docker')でコンテナをマップする場合にのみ必要です。 – dirn

+0

有効なポイント。ありがとうございました! – Adam

答えて

3

それが問題らしいです。フラスコ-ドッキングウィンドウのために、この助成金のユーザー権限を解決するために

「@」あなたは名前 `mysql`とコンテナをリンクしたflaskdocker_web_1.flaskdocker_defaultユーザー

+0

これは問題を解決するようです。ありがとう。 – Adam