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'],
}
}
助けてください。ありがとうございました!
'はos.environ [ 'RDS_USERNAME']'は何ですか'os.environ ['RDS_HOSTNAME']'は好きですか?ダミー値を投稿できますか?あなたの 'rds_username'が' jhon 'であれば、 'jhon @ localhost'であれば' doe @ localhost 'を投稿してください。 –
@MuhammadTahir RDS環境変数は、ユーザー名などの 'mansoorsiddiqui'のようなものです。それらには '@Localhost'は含まれていません。ホスト名は、RDSエンドポイントによって提供されるURLです。 MySQL Workbenchでもこれらの値を使って接続できます。 –
''ユーザー 'my_username' @ 'localhost'(パスワード:YESを使用)のアクセスが拒否されました。もしユーザ 'my_username' @ 'IP OF APPLICATION SERVER'(パスワード:YESを使用)に対してアクセスが拒否されていれば、あなたはusername @ yourappserveripをMySQLユーザに追加する必要があります。 –