はじめに
本記事では、Djangoで作成したアプリを GCP (Google Cloud Platform) へデプロイした後に管理画面へログインできなくなった際に発生したエラーとその対処法を記載していきます。
エラー内容1:ProgrammingError: relation "auth_user" does not exist.
アプリの管理画面にユーザー名とパスワードを入力してログインすると、
ProgrammingError: relation "auth_user" does not exist.
と表示されて管理画面を表示できない。
対処法
色々記事を漁って調べましたが、これといった解決方法は見出せず。
結局はGoogle Cloud Platformで新たにデータベースを作成し直した。
新たに作成したデータベースを使ったところ、このエラーは表示されなかった。
エラー内容2: 1045, "Access denied for user 'root'@'cloudsqlproxy
開発環境で作成した設定をGCPへ移す際に、python manage.py makemigrations
でマイグレーションを作成しようとしたが、次のエラーが表示された。
RuntimeWarning: Got an error checking a consistent migration history performed for database connection 'default': (1045, "Access denied for user 'root'@'cloudsqlproxy~49...***' (using password: YES)")
対処法
どうやらGCPのSQLに作成したユーザー名とパスワードをsettings.pyに入れる必要があるらしい。ここで記載したユーザーがSQLのユーザーに存在しない場合、このエラーが表示されるみたい。
# PROJECT_ID:REGION:INSTANCE_NAME はSQLの接続名を入れる
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '/cloudsql/PROJECT_ID:REGION:INSTANCE_NAME',
'USER': 'root',
'PASSWORD': 'root0123',
'NAME': 'USER',
}
エラー内容3: 2013, "Lost connection to MySQL server
こちらのエラーもpython manage.py makemigrations
でマイグレーションを作成しようとした際に発生した。
MySQLdb.OperationalError: (2013, "Lost connection to MySQL server at 'reading initial communication packet', system error: 0")
対処法
当時、図書館の無線LANを使用して作業していたため、アクセス制限がかかってしまったみたいである。アクセス制限のかからない別のLANに接続する事で解消できた。