前提・実現したいこと
ここに質問の内容を詳しく書いてください。
さくらのVPS上で、Qiitaに手順のログを記しながら、簡単なデータベースアプリケーションを作ろうとしています
発生している問題・エラーメッセージ
「python manage.py makemigrations」のところでエラーが出てきます。
エラーの原因はPyMySQLで間違いなさそうですが、原因の領域の切り分けができない...
[op@ik1-336-28225 pj1]$ python manage.py makemigrations app1 Traceback (most recent call last): File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 216, in ensure_connection self.connect() File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 194, in connect self.connection = self.get_new_connection(conn_params) File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 236, in get_new_connection return Database.connect(**conn_params) File "/home/op/anaconda3/lib/python3.6/site-packages/pymysql/__init__.py", line 90, in Connect return Connection(*args, **kwargs) File "/home/op/anaconda3/lib/python3.6/site-packages/pymysql/connections.py", line 699, in __init__ self.connect() File "/home/op/anaconda3/lib/python3.6/site-packages/pymysql/connections.py", line 935, in connect self._get_server_information() File "/home/op/anaconda3/lib/python3.6/site-packages/pymysql/connections.py", line 1249, in _get_server_information packet = self._read_packet() File "/home/op/anaconda3/lib/python3.6/site-packages/pymysql/connections.py", line 1005, in _read_packet % (packet_number, self._next_seq_id)) pymysql.err.InternalError: Packet sequence number wrong - got 45 expected 0 The above exception was the direct cause of the following exception: Traceback (most recent call last): File "manage.py", line 15, in <module> execute_from_command_line(sys.argv) File "/home/op/anaconda3/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line utility.execute() File "/home/op/anaconda3/lib/python3.6/site-packages/django/core/management/__init__.py", line 365, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/op/anaconda3/lib/python3.6/site-packages/django/core/management/base.py", line 288, in run_from_argv self.execute(*args, **cmd_options) File "/home/op/anaconda3/lib/python3.6/site-packages/django/core/management/base.py", line 332, in execute self.check() File "/home/op/anaconda3/lib/python3.6/site-packages/django/core/management/base.py", line 364, in check include_deployment_checks=include_deployment_checks, File "/home/op/anaconda3/lib/python3.6/site-packages/django/core/management/base.py", line 351, in _run_checks return checks.run_checks(**kwargs) File "/home/op/anaconda3/lib/python3.6/site-packages/django/core/checks/registry.py", line 73, in run_checks new_errors = check(app_configs=app_configs) File "/home/op/anaconda3/lib/python3.6/site-packages/django/core/checks/model_checks.py", line 27, in check_all_models errors.extend(model.check(**kwargs)) File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/models/base.py", line 1200, in check errors.extend(cls._check_fields(**kwargs)) File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/models/base.py", line 1272, in _check_fields errors.extend(field.check(**kwargs)) File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/models/fields/__init__.py", line 894, in check errors = super().check(**kwargs) File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/models/fields/__init__.py", line 206, in check errors.extend(self._check_backend_specific_checks(**kwargs)) File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/models/fields/__init__.py", line 303, in _check_backend_specific_checks return connections[db].validation.check_field(self, **kwargs) File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/backends/base/validation.py", line 21, in check_field field_type = field.db_type(self.connection) File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/models/fields/__init__.py", line 648, in db_type return connection.data_types[self.get_internal_type()] % data File "/home/op/anaconda3/lib/python3.6/site-packages/django/utils/functional.py", line 36, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 133, in data_types if self.features.supports_microsecond_precision: File "/home/op/anaconda3/lib/python3.6/site-packages/django/utils/functional.py", line 36, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/backends/mysql/features.py", line 65, in supports_microsecond_precision return self.connection.mysql_version >= (5, 6, 4) File "/home/op/anaconda3/lib/python3.6/site-packages/django/utils/functional.py", line 36, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 345, in mysql_version with self.temporary_connection() as cursor: File "/home/op/anaconda3/lib/python3.6/contextlib.py", line 82, in __enter__ return next(self.gen) File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 576, in temporary_connection cursor = self.cursor() File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 255, in cursor return self._cursor() File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 232, in _cursor self.ensure_connection() File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 216, in ensure_connection self.connect() File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__ raise dj_exc_value.with_traceback(traceback) from exc_value File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 216, in ensure_connection self.connect() File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 194, in connect self.connection = self.get_new_connection(conn_params) File "/home/op/anaconda3/lib/python3.6/site-packages/django/db/backends/mysql/base.py", line 236, in get_new_connection return Database.connect(**conn_params) File "/home/op/anaconda3/lib/python3.6/site-packages/pymysql/__init__.py", line 90, in Connect return Connection(*args, **kwargs) File "/home/op/anaconda3/lib/python3.6/site-packages/pymysql/connections.py", line 699, in __init__ self.connect() File "/home/op/anaconda3/lib/python3.6/site-packages/pymysql/connections.py", line 935, in connect self._get_server_information() File "/home/op/anaconda3/lib/python3.6/site-packages/pymysql/connections.py", line 1249, in _get_server_information packet = self._read_packet() File "/home/op/anaconda3/lib/python3.6/site-packages/pymysql/connections.py", line 1005, in _read_packet % (packet_number, self._next_seq_id)) django.db.utils.InternalError: Packet sequence number wrong - got 45 expected 0
該当のソースコード
全体のソースはこちらに書いてあります。
https://github.com/duri0214/CentOS-Python
が、ほぼほぼPyMySQLの問題であるというアタリがついていますので、
PyMySQLに関連するソースを書きます。まずはフォルダツリーを。
[op@ik1-336-28225 pj1]$ tree . ┣ app1 ┃ ┣ __init__.py ┃ ┣ __pycache__ ┃ ┃ ┣ __init__.cpython-36.pyc ┃ ┃ ┣ admin.cpython-36.pyc ┃ ┃ ┣ models.cpython-36.pyc ┃ ┃ ┣ urls.cpython-36.pyc ┃ ┃ ┗ views.cpython-36.pyc ┃ ┣ admin.py ┃ ┣ apps.py ┃ ┣ migrations ┃ ┃ ┗ __init__.py ┃ ┣ models.py ┃ ┣ templates ┃ ┃ ┗ index.html ┃ ┣ tests.py ┃ ┣ urls.py ┃ ┗ views.py ┣ manage.py ┗ pj1 ┣ __init__.py ┣ __pycache__ ┃ ┣ __init__.cpython-36.pyc ┃ ┣ settings.cpython-36.pyc ┃ ┗ urls.cpython-36.pyc ┣ settings.py ┣ urls.py ┗ wsgi.py
そしてPyMySQL関連の記述をした箇所が、pj1/pj1 ディレクトリの settings.py です。
凡例:
★:追記箇所
●:コメントアウトした箇所(デフォルトで書いてあるもの)
# Database # https://docs.djangoproject.com/en/2.0/ref/settings/#databases ★import pymysql ★pymysql.install_as_MySQLdb() DATABASES = { ● 'default': { ● 'ENGINE': 'django.db.backends.sqlite3', ● 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), ● } ★ 'default': { ★ 'ENGINE': 'django.db.backends.mysql', ★ 'NAME': 'pythondb', ★ 'USER': 'python', ★ 'PASSWORD': 'python123', ★ 'HOST': '153.126.200.229', ★ 'PORT': '61203', ★ } }
試したこと
ひとまずpj1フォルダを消して、やりなおすことでエラーが出ない状態(Hello Djangoの状態)に戻せることはわかったので、いろんなチュートリアルみると makemigrationsはすんなり通る場所なのに環境が違うのかわからないけど大ハマりしています。作りたいものがもう迫っているのにスタートに立てないのはまずい...
補足情報(FW/ツールのバージョンなど)
・Linux(CentOS release 7.4)
・Apache 2.4.6
・MySQL 5.7
・Python 3.6(Anaconda)
・Django 2.0
・PyMySQL 0.8
回答1件
あなたの回答
tips
プレビュー