実現したいこと
・Djangoで作成したアプリケーションをEC2でデプロイ作業中
・その過程で、python manage.py migrateによるテーブル作成に失敗。このエラーを解消したいです。
・エラーとなっている可能性程度の回答でも構いません、どなたかアドバイスを頂けますと幸いです。。
前提
下記コマンドで、EC2インスタンス→RDSインスタンス(MySQL)への接続は成功。
mysql -u admin -p -h (RDSのエンドポイント)
発生している問題・エラーメッセージ
その上で、python manage.py migrateを実施した際に、下記エラーが発生
Traceback (most recent call last): File "/home/ec2-user/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 282, in ensure_connection self.connect() File "/home/ec2-user/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 263, in connect self.connection = self.get_new_connection(conn_params) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/db/backends/mysql/base.py", line 247, in get_new_connection connection = Database.connect(**conn_params) File "/usr/local/lib64/python3.9/site-packages/MySQLdb/__init__.py", line 123, in Connect return Connection(*args, **kwargs) File "/usr/local/lib64/python3.9/site-packages/MySQLdb/connections.py", line 185, in __init__ super().__init__(*args, **kwargs2) MySQLdb.OperationalError: (1045, "Access denied for user 'ec2-user'@'172.31.13.131' (using password: YES)") The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/ec2-user/test_server/server/manage.py", line 21, in <module> main() File "/home/ec2-user/test_server/server/manage.py", line 18, in main execute_from_command_line(sys.argv) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line utility.execute() File "/home/ec2-user/.local/lib/python3.9/site-packages/django/core/management/__init__.py", line 440, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/core/management/base.py", line 402, in run_from_argv self.execute(*args, **cmd_options) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/core/management/base.py", line 448, in execute output = self.handle(*args, **options) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/core/management/base.py", line 96, in wrapped res = handle_func(*args, **kwargs) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/core/management/commands/migrate.py", line 97, in handle self.check(databases=[database]) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/core/management/base.py", line 475, in check all_issues = checks.run_checks( File "/home/ec2-user/.local/lib/python3.9/site-packages/django/core/checks/registry.py", line 88, in run_checks new_errors = check(app_configs=app_configs, databases=databases) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/core/checks/database.py", line 13, in check_database_backends issues.extend(conn.validation.check(**kwargs)) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/db/backends/mysql/validation.py", line 9, in check issues.extend(self._check_sql_mode(**kwargs)) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/db/backends/mysql/validation.py", line 14, in _check_sql_mode self.connection.sql_mode & {"STRICT_TRANS_TABLES", "STRICT_ALL_TABLES"} File "/home/ec2-user/.local/lib/python3.9/site-packages/django/utils/functional.py", line 57, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/db/backends/mysql/base.py", line 443, in sql_mode sql_mode = self.mysql_server_data["sql_mode"] File "/home/ec2-user/.local/lib/python3.9/site-packages/django/utils/functional.py", line 57, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/db/backends/mysql/base.py", line 399, in mysql_server_data with self.temporary_connection() as cursor: File "/usr/lib64/python3.9/contextlib.py", line 119, in __enter__ return next(self.gen) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 694, in temporary_connection with self.cursor() as cursor: File "/home/ec2-user/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 323, in cursor return self._cursor() File "/home/ec2-user/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 299, in _cursor self.ensure_connection() File "/home/ec2-user/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 282, in ensure_connection self.connect() File "/home/ec2-user/.local/lib/python3.9/site-packages/django/db/utils.py", line 91, in __exit__ raise dj_exc_value.with_traceback(traceback) from exc_value File "/home/ec2-user/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 282, in ensure_connection self.connect() File "/home/ec2-user/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/db/backends/base/base.py", line 263, in connect self.connection = self.get_new_connection(conn_params) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/ec2-user/.local/lib/python3.9/site-packages/django/db/backends/mysql/base.py", line 247, in get_new_connection connection = Database.connect(**conn_params) File "/usr/local/lib64/python3.9/site-packages/MySQLdb/__init__.py", line 123, in Connect return Connection(*args, **kwargs) File "/usr/local/lib64/python3.9/site-packages/MySQLdb/connections.py", line 185, in __init__ super().__init__(*args, **kwargs2) django.db.utils.OperationalError: (1045, "Access denied for user '(ec2インスタンスユーザー名)@'(EC2インスタンスのIP)' (using password: YES)")
該当のソースコード(Django/setting.py)
python
1 2 3 4DATABASES = { 5 'default': { 6 'ENGINE': os.getenv('ENGINE'), #django.db.backends.mysql 7 'NAME': os.getenv('NAME'),#RDSのDB名が「-」となっていたので、空白(ブランク)にしています 8 'USER': os.getenv('USER'),#RDSのマスターユーザー名 9 'PASSWORD': os.getenv('PASSWORD'),#RDSのマスターパスワード 10 'HOST': os.getenv('HOST'),#RDSのエンドポイント 11 'PORT': os.getenv('PORT'),#3306 12 'OPTIONS': { 13 'charset': 'utf8mb4', 14 }, 15 } 16} 17
試したこと
・MySQLに接続し、DBを作成して作成したDB名をsetting.pyの「NAME」に記述してみましたが、結果は同様でした。
補足情報(FW/ツールのバージョンなど)
※その他、必要な情報があれば追記します。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。