CyMySQL
CyMySQL copied to clipboard
cymysql.err.InternalError: (1043, 'Bad handshake')
django == 3.0.5 django-cymysql == 3.0.0 cymysql == 0.9.14 mysql == 5.7.23
Traceback (most recent call last): File "/home/linux/py3env/lib/python3.7/site-packages/django/db/backends/base/base.py", line 220, in ensure_connection self.connect() File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/django/db/backends/base/base.py", line 197, in connect self.connection = self.get_new_connection(conn_params) File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/mysql_cymysql/base.py", line 232, in get_new_connection return Database.connect(**conn_params) File "/home/linux/py3env/lib/python3.7/site-packages/cymysql/init.py", line 84, in Connect return Connection(*args, **kwargs) File "cymysql/connections.py", line 248, in cymysql.connections.Connection.init File "cymysql/connections.py", line 414, in cymysql.connections.Connection._connect File "cymysql/connections.py", line 500, in cymysql.connections.Connection._request_authentication File "cymysql/connections.py", line 419, in cymysql.connections.Connection.read_packet File "cymysql/packet.pyx", line 65, in cymysql.packet.MysqlPacket.init File "cymysql/err.py", line 149, in cymysql.err.raise_mysql_exception File "cymysql/err.py", line 144, in cymysql.err._check_mysql_exception cymysql.err.InternalError: (1043, 'Bad handshake')
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "/home/linux/py3env/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/home/linux/py3env/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/autoreload.py", line 53, in wrapper fn(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/django/core/management/commands/runserver.py", line 120, in inner_run self.check_migrations() File "/home/linux/py3env/lib/python3.7/site-packages/django/core/management/base.py", line 458, in check_migrations executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS]) File "/home/linux/py3env/lib/python3.7/site-packages/django/db/migrations/executor.py", line 18, in init self.loader = MigrationLoader(self.connection) File "/home/linux/py3env/lib/python3.7/site-packages/django/db/migrations/loader.py", line 49, in init self.build_graph() File "/home/linux/py3env/lib/python3.7/site-packages/django/db/migrations/loader.py", line 212, in build_graph self.applied_migrations = recorder.applied_migrations() File "/home/linux/py3env/lib/python3.7/site-packages/django/db/migrations/recorder.py", line 76, in applied_migrations if self.has_table(): File "/home/linux/py3env/lib/python3.7/site-packages/django/db/migrations/recorder.py", line 56, in has_table return self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()) File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/django/db/backends/base/base.py", line 260, in cursor return self._cursor() File "/home/linux/py3env/lib/python3.7/site-packages/django/db/backends/base/base.py", line 236, in _cursor self.ensure_connection() File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/django/db/backends/base/base.py", line 220, in ensure_connection self.connect() File "/home/linux/py3env/lib/python3.7/site-packages/django/db/utils.py", line 90, in exit raise dj_exc_value.with_traceback(traceback) from exc_value File "/home/linux/py3env/lib/python3.7/site-packages/django/db/backends/base/base.py", line 220, in ensure_connection self.connect() File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/django/db/backends/base/base.py", line 197, in connect self.connection = self.get_new_connection(conn_params) File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/mysql_cymysql/base.py", line 232, in get_new_connection return Database.connect(**conn_params) File "/home/linux/py3env/lib/python3.7/site-packages/cymysql/init.py", line 84, in Connect return Connection(*args, **kwargs) File "cymysql/connections.py", line 248, in cymysql.connections.Connection.init File "cymysql/connections.py", line 414, in cymysql.connections.Connection._connect File "cymysql/connections.py", line 500, in cymysql.connections.Connection._request_authentication File "cymysql/connections.py", line 419, in cymysql.connections.Connection.read_packet File "cymysql/packet.pyx", line 65, in cymysql.packet.MysqlPacket.init File "cymysql/err.py", line 149, in cymysql.err.raise_mysql_exception File "cymysql/err.py", line 144, in cymysql.err._check_mysql_exception django.db.utils.InternalError: (1043, 'Bad handshake')
I don't know why, but
- Write pure cymysql example code (not django and django-cymysql)
- Test with mysql command
I don't know why, but
- Write pure cymysql example code (not django and django-cymysql)
- Test with mysql command
have any example code, Test cymsql connect (use ssl) i don't know how to test it
here is my databases code
"options": { "ssl": { "ca": "", "cert": "", "key": "" } }
seems
"options": { "ssh" : True }
seems
"options": { "ssh" : True }
ops, it does't work, are you sure?
System check identified no issues (0 silenced). Exception in thread django-main-thread: Traceback (most recent call last): File "/home/linux/py3env/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/home/linux/py3env/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/autoreload.py", line 53, in wrapper fn(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/django/core/management/commands/runserver.py", line 120, in inner_run self.check_migrations() File "/home/linux/py3env/lib/python3.7/site-packages/django/core/management/base.py", line 458, in check_migrations executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS]) File "/home/linux/py3env/lib/python3.7/site-packages/django/db/migrations/executor.py", line 18, in __init__ self.loader = MigrationLoader(self.connection) File "/home/linux/py3env/lib/python3.7/site-packages/django/db/migrations/loader.py", line 49, in __init__ self.build_graph() File "/home/linux/py3env/lib/python3.7/site-packages/django/db/migrations/loader.py", line 212, in build_graph self.applied_migrations = recorder.applied_migrations() File "/home/linux/py3env/lib/python3.7/site-packages/django/db/migrations/recorder.py", line 76, in applied_migrations if self.has_table(): File "/home/linux/py3env/lib/python3.7/site-packages/django/db/migrations/recorder.py", line 56, in has_table return self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()) File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/django/db/backends/base/base.py", line 260, in cursor return self._cursor() File "/home/linux/py3env/lib/python3.7/site-packages/django/db/backends/base/base.py", line 236, in _cursor self.ensure_connection() File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/django/db/backends/base/base.py", line 220, in ensure_connection self.connect() File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/django/db/backends/base/base.py", line 197, in connect self.connection = self.get_new_connection(conn_params) File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/mysql_cymysql/base.py", line 232, in get_new_connection return Database.connect(**conn_params) File "/home/linux/py3env/lib/python3.7/site-packages/cymysql/__init__.py", line 84, in Connect return Connection(*args, **kwargs) File "cymysql/connections.py", line 121, in cymysql.connections.Connection.__init__ TypeError: __init__() got an unexpected keyword argument 'ssh'
Oh, Sorry
"options": {"ssl": Ture}
ssh -> ssl
ssl
Traceback (most recent call last): File "/home/linux/py3env/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/home/linux/py3env/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/autoreload.py", line 53, in wrapper fn(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/django/core/management/commands/runserver.py", line 120, in inner_run self.check_migrations() File "/home/linux/py3env/lib/python3.7/site-packages/django/core/management/base.py", line 458, in check_migrations executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS]) File "/home/linux/py3env/lib/python3.7/site-packages/django/db/migrations/executor.py", line 18, in __init__ self.loader = MigrationLoader(self.connection) File "/home/linux/py3env/lib/python3.7/site-packages/django/db/migrations/loader.py", line 49, in __init__ self.build_graph() File "/home/linux/py3env/lib/python3.7/site-packages/django/db/migrations/loader.py", line 212, in build_graph self.applied_migrations = recorder.applied_migrations() File "/home/linux/py3env/lib/python3.7/site-packages/django/db/migrations/recorder.py", line 76, in applied_migrations if self.has_table(): File "/home/linux/py3env/lib/python3.7/site-packages/django/db/migrations/recorder.py", line 56, in has_table return self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()) File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/django/db/backends/base/base.py", line 260, in cursor return self._cursor() File "/home/linux/py3env/lib/python3.7/site-packages/django/db/backends/base/base.py", line 236, in _cursor self.ensure_connection() File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/django/db/backends/base/base.py", line 220, in ensure_connection self.connect() File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/django/db/backends/base/base.py", line 197, in connect self.connection = self.get_new_connection(conn_params) File "/home/linux/py3env/lib/python3.7/site-packages/django/utils/asyncio.py", line 26, in inner return func(*args, **kwargs) File "/home/linux/py3env/lib/python3.7/site-packages/mysql_cymysql/base.py", line 232, in get_new_connection return Database.connect(**conn_params) File "/home/linux/py3env/lib/python3.7/site-packages/cymysql/__init__.py", line 84, in Connect return Connection(*args, **kwargs) File "cymysql/connections.py", line 160, in cymysql.connections.Connection.__init__ TypeError: argument of type 'bool' is not iterable
Sorry, I'm not sure about the SSL connection thing.
The settings for ssl should be the same as PyMySQL in the original fork. https://github.com/PyMySQL/PyMySQL/issues/430 Here's what you might find helpful.
in fact, i just use cymysql. i got seem error
conn = cymysql.connect( host='xxx', user='xxxx', passwd='xxxxx' db='xxxxx', ssl={"ca": "ca path", "cert": "cert path", "key": "key path"} ) cur = conn.cursor()
but i do not useing ssl, i want work!