Django mysqlclient后端在Windows中产生django.db.utils.OperationalError:(2059,< NULL>) [英] Django mysqlclient backend produces django.db.utils.OperationalError: (2059, <NULL>) in Windows

查看:108
本文介绍了Django mysqlclient后端在Windows中产生django.db.utils.OperationalError:(2059,< NULL>)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使Django项目在Windows 10计算机上运行,​​并且在尝试建立数据库连接时会引发非常具体的错误. 在此SO帖子中,问题出在认证,但是在该帖子中显示了有关该错误的详细信息,而不是< \ NULL>,该信息几乎没有继续执行.

I'm trying to get my Django project running on a Windows 10 computer and it throws a very unspecific error when trying to establish a database connection. In this SO-post the problem was with the authentication, but in that post details about the error is displayed instead of <\NULL> which gives very little to go on.

整个错误看起来像这样:

The entire error looks like this:

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x0000018C3B8761E0>
Traceback (most recent call last):
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\backends\base\base.py", line 216, in ensure_connection
    self.connect()
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\backends\base\base.py", line 194, in connect
    self.connection = self.get_new_connection(conn_params)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\backends\mysql\base.py", line 236, in get_new_connection
    return Database.connect(**conn_params)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\MySQLdb\__init__.py", line 85, in Connect
    return Connection(*args, **kwargs)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\MySQLdb\connections.py", line 204, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2059, <NULL>)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\utils\autoreload.py", line 225, in wrapper
    fn(*args, **kwargs)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\core\management\commands\runserver.py", line 120, in inner_run
    self.check(display_num_errors=True)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\core\management\base.py", line 364, in check
    include_deployment_checks=include_deployment_checks,
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\core\management\base.py", line 351, in _run_checks
    return checks.run_checks(**kwargs)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\core\checks\registry.py", line 73, in run_checks
    new_errors = check(app_configs=app_configs)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\core\checks\model_checks.py", line 27, in check_all_models
    errors.extend(model.check(**kwargs))
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\models\base.py", line 1200, in check
    errors.extend(cls._check_fields(**kwargs))
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\models\base.py", line 1272, in _check_fields
    errors.extend(field.check(**kwargs))
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\models\fields\__init__.py", line 894, in check
    errors = super().check(**kwargs)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\models\fields\__init__.py", line 206, in check
    errors.extend(self._check_backend_specific_checks(**kwargs))
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\models\fields\__init__.py", line 303, in _check_backend_specific_checks
    return connections[db].validation.check_field(self, **kwargs)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\backends\base\validation.py", line 21, in check_field
    field_type = field.db_type(self.connection)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\models\fields\__init__.py", line 648, in db_type
    return connection.data_types[self.get_internal_type()] % data
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\utils\functional.py", line 36, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\backends\mysql\base.py", line 133, in data_types
    if self.features.supports_microsecond_precision:
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\utils\functional.py", line 36, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\backends\mysql\features.py", line 65, in supports_microsecond_precision
    return self.connection.mysql_version >= (5, 6, 4)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\utils\functional.py", line 36, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\backends\mysql\base.py", line 345, in mysql_version
    with self.temporary_connection() as cursor:
  File "C:\Users\marcu\AppData\Local\Programs\Python\Python36\lib\contextlib.py", line 81, in __enter__
    return next(self.gen)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\backends\base\base.py", line 576, in temporary_connection
    cursor = self.cursor()
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\backends\base\base.py", line 255, in cursor
    return self._cursor()
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\backends\base\base.py", line 232, in _cursor
    self.ensure_connection()
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\backends\base\base.py", line 216, in ensure_connection
    self.connect()
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\utils.py", line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\backends\base\base.py", line 216, in ensure_connection
    self.connect()
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\backends\base\base.py", line 194, in connect
    self.connection = self.get_new_connection(conn_params)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\django\db\backends\mysql\base.py", line 236, in get_new_connection
    return Database.connect(**conn_params)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\MySQLdb\__init__.py", line 85, in Connect
    return Connection(*args, **kwargs)
  File "D:\Program\LiquidMarket\venv\lib\site-packages\MySQLdb\connections.py", line 204, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
django.db.utils.OperationalError: (2059, <NULL>)

使用python 3.6.6和mysqlclient 1.3.13,尽管也尝试过1.3.12.

Using python 3.6.6 and mysqlclient 1.3.13, although 1.3.12 has also been tried.

数据库设置:

DATABASES = {
    'default': {
        'ENGINE': "django.db.backends.mysql",  # 'mysql.connector.django'
        'NAME': 'testdb',
        'USER': 'root',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '3306',
        'OPTIONS': {
          'autocommit': True,
        },
    },
}

推荐答案

更改新版本mysql的加密方式,因为django无法支持新加密

change the way of encryption of the new version mysql,because django cant support the new encryption

这篇关于Django mysqlclient后端在Windows中产生django.db.utils.OperationalError:(2059,&lt; NULL&gt;)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆