CyMySQL icon indicating copy to clipboard operation
CyMySQL copied to clipboard

cymysql.err.InternalError: (1043, 'Bad handshake')

Open kobe-tian opened this issue 4 years ago • 9 comments

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')

kobe-tian avatar Jun 01 '20 06:06 kobe-tian

I don't know why, but

  1. Write pure cymysql example code (not django and django-cymysql)
  2. Test with mysql command

nakagami avatar Jun 01 '20 06:06 nakagami

I don't know why, but

  1. Write pure cymysql example code (not django and django-cymysql)
  2. Test with mysql command

have any example code, Test cymsql connect (use ssl) i don't know how to test it

kobe-tian avatar Jun 01 '20 07:06 kobe-tian

here is my databases code "options": { "ssl": { "ca": "", "cert": "", "key": "" } }

kobe-tian avatar Jun 01 '20 07:06 kobe-tian

seems

"options": { "ssh" : True }

nakagami avatar Jun 01 '20 07:06 nakagami

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'

kobe-tian avatar Jun 01 '20 07:06 kobe-tian

Oh, Sorry

"options": {"ssl": Ture}

ssh -> ssl

nakagami avatar Jun 01 '20 07:06 nakagami

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

kobe-tian avatar Jun 01 '20 07:06 kobe-tian

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.

nakagami avatar Jun 01 '20 07:06 nakagami

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!

kobe-tian avatar Jun 01 '20 07:06 kobe-tian