0

Djangoアプリ用のRDS MySQLの設定に関するすべてのガイドとチュートリアルに従ってきました。すべてがローカルで正常に動作します。展開すると、エラーは発生しません。私のウェブサイトは動いている。しかし、私がセットアップした安らかなフレームワークにアクセスしようとすると、または管理ページにログインしようとすると、テーブルが存在しない(テーブルが存在しない)というProgramErrorが発生します。Djangoアプリは、MySQL RDSで弾力のあるbeanstalkにデプロイされました。テーブルは決して作成されませんでした。

データベースへのアクセスに問題はないようです。私のRDS環境変数はすべて設定されており、セキュリティグループが設定されています。ローカルのmysqlクライアントからデータベースにアクセスすることもできますデータベースにテーブルがないことを確認してください。

設定ファイルに 'django-admin.py makemigrations'と 'django-admin.py migrate'を実行するコマンドが設定されていますが、これを 'python manage.py ...'などに変更しようとしました。コマンドがうまく動作しないようです。

私が弾力のあるbeanstalk環境に入ると、mysql -u my_usernameを使ってmysqlに入ることができます。しかし、私のアプリがあるフォルダに移動して、 'python manage.py makemigrations'を手動で実行しようとすると、次のようになります:django.db.utils.OperationalError :(1045、 "ユーザー 'my_username'のアクセスが拒否されました@ 'localhostの'(パスワードを使用して:YES) ")ここで

私の設定がある...

requirements.txt

virtualenv==15.0.1 
Django==1.9.5 
django-compressor==2.0 
django-model-utils==2.4 
djangorestframework==3.3.2 
dj-database-url==0.4.0 
gunicorn==19.4.5 
MySQL-python==1.2.5 
jsonfield==1.0.3 

.ebextentions/01_packages.config

packages: 
    yum: 
    git: [] 
    gcc: [] 
    mysql: [] 
    mysql-devel: [] 
    python-devel: [] 

。 ebextentiアドオン/ project.config

container_commands: 
    01_makemigrations: 
    command: "source /opt/python/run/venv/bin/activate && python manage.py makemigrations --noinput" 
    leader_only: true 
    02_migrate: 
    command: "source /opt/python/run/venv/bin/activate && python manage.py migrate --noinput" 
    leader_only: true 
    03_createsu: 
    command: "source /opt/python/run/venv/bin/activate && python manage.py createsu" 
    leader_only: true 
    04_collectstatic: 
    command: "source /opt/python/run/venv/bin/activate && python manage.py collectstatic --noinput" 

settings.py

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': os.environ['RDS_DB_NAME'], 
     'USER': os.environ['RDS_USERNAME'], 
     'PASSWORD': os.environ['RDS_PASSWORD'], 
     'HOST': os.environ['RDS_HOSTNAME'], 
     'PORT': os.environ['RDS_PORT'], 
    } 
} 

助けてください。ありがとうございました!

+0

'はos.environ [ 'RDS_USERNAME']'は何ですか'os.environ ['RDS_HOSTNAME']'は好きですか?ダミー値を投稿できますか?あなたの 'rds_username'が' jhon 'であれば、 'jhon @ localhost'であれば' doe @ localhost 'を投稿してください。 –

+0

@MuhammadTahir RDS環境変数は、ユーザー名などの 'mansoorsiddiqui'のようなものです。それらには '@Localhost'は含まれていません。ホスト名は、RDSエンドポイントによって提供されるURLです。 MySQL Workbenchでもこれらの値を使って接続できます。 –

+0

''ユーザー 'my_username' @ 'localhost'(パスワード:YESを使用)のアクセスが拒否されました。もしユーザ 'my_username' @ 'IP OF APPLICATION SERVER'(パスワード:YESを使用)に対してアクセスが拒否されていれば、あなたはusername @ yourappserveripをMySQLユーザに追加する必要があります。 –

答えて

0

RDSセキュリティグループがエラスティックビーンストークのEC2セキュリティグループに設定されているかどうかを確認してください。それは次のようになります。

EC2のセキュリティグループを:あなたの-RDS-セキュリティグループ名、あなたの-弾豆の木 - セキュリティグループ

関連する問題