简体   繁体   English

django connec mysql --_ mysql_exceptions.OperationalError:(2006, <NULL> )

[英]django connec mysql --_mysql_exceptions.OperationalError: (2006, <NULL>)

In fact, I learn the django from the website: https://docs.djangoproject.com/zh-hans/2.1/intro/tutorial02/ 实际上,我是从以下网站学习django的: https : //docs.djangoproject.com/zh-hans/2.1/intro/tutorial02/

The next is my settting.py 接下来是我的settting.py

DATABASES = {
    # 'default': {
    #     'ENGINE': 'django.db.backends.sqlite3',
    #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    # }
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_01',
        'USER': 'root',
        'PASSWORD': '9940',
        'HOST': 'localhost',   # Or an IP Address that your DB is hosted on
        'PORT': '3306',
    }
} 

mysql : enter image description here mysql: 在此处输入图像描述

I want to know how to solve this problem,or I don't know what's the problem? 我想知道如何解决这个问题,或者我不知道这是什么问题? Thank you very much! 非常感谢你!

I think DATABASES is right, I want to connect mysql to django program named mysite, but I run 'python manage.py migrate': 我认为数据库是正确的,我想将mysql连接到名为mysite的django程序,但是我运行“ python manage.py migration”:

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

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

Traceback (most recent call last):
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\django\utils\autoreload.py", line 225, in wrapper
    fn(*args, **kwargs)
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\django\core\management\commands\runserver.py", line 120, in inner_run
    self.check_migrations()
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\django\core\management\base.py", line 442, in check_migrations
    executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\django\db\migrations\executor.py", line 18, in __init__
    self.loader = MigrationLoader(self.connection)
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\django\db\migrations\loader.py", line 49, in __init__
    self.build_graph()
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\django\db\migrations\loader.py", line 212, in build_graph
    self.applied_migrations = recorder.applied_migrations()
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\django\db\migrations\recorder.py", line 61, in applied_migrations
    if self.has_table():
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\django\db\migrations\recorder.py", line 44, in has_table
    return self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor())
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\django\db\backends\base\base.py", line 255, in cursor
    return self._cursor()
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\django\db\backends\base\base.py", line 232, in _cursor
    self.ensure_connection()
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\django\db\backends\base\base.py", line 216, in ensure_connection
    self.connect()
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\django\db\utils.py", line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\django\db\backends\base\base.py", line 216, in ensure_connection
    self.connect()
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\django\db\backends\base\base.py", line 194, in connect
    self.connection = self.get_new_connection(conn_params)
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\django\db\backends\mysql\base.py", line 227, in get_new_connection
    return Database.connect(**conn_params)
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\MySQLdb\__init__.py", line 85, in Connect
    return Connection(*args, **kwargs)
  File "D:\Tools\Anaconda3\envs\test-django\lib\site-packages\MySQLdb\connections.py", line 208, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
django.db.utils.OperationalError: (2006, <NULL>)

Maybe it's because django can't support the new password encryption of mysql. 也许是因为django无法支持mysql的新密码加密。 You should try changing it. 您应该尝试更改它。 You can do this from the mysql command line client: 您可以从mysql命令行客户端执行此操作:

在此处输入图片说明

I got the same OperationalError: (2006, <NULL>) when using python to connect to MySQL Server on Windows. 使用python连接到Windows上的MySQL Server时OperationalError: (2006, <NULL>)出现了相同的OperationalError: (2006, <NULL>) It seems like the error has something to do with the new authentication method in MySQL 8. I reconfigured the MySQL server from using the recommended authentication method to "Use Legacy Authentication Method" and the error goes away. 似乎该错误与MySQL 8中的新身份验证方法有关。我将MySQL服务器从使用推荐的身份验证方法重新配置为“使用旧式身份验证方法”,该错误消失了。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 _mysql_exceptions.OperationalError - _mysql_exceptions.OperationalError Python 解决_mysql_exceptions.OperationalError: (2006, &#39;MySQL 服务器已经消失&#39;) 时使用数据库模型 - Python solving _mysql_exceptions.OperationalError: (2006, 'MySQL server has gone away') when using db models _mysql_exceptions.OperationalError 1044使用Django的用户被拒绝访问 - _mysql_exceptions.OperationalError 1044 Access denied for user using Django 无法在 Flask 应用程序中捕获 _mysql_exceptions.OperationalError - Can't catch _mysql_exceptions.OperationalError in Flask app mysql_exceptions.OperationalError:(1054,“字段列表”中的未知列“ xxx”) - mysql_exceptions.OperationalError: (1054, “Unknown column 'xxx' in 'field list'”) _mysql_exceptions.OperationalError:(1271,“操作&#39;IN&#39;的排序规则的非法混合”)在python中 - _mysql_exceptions.OperationalError: (1271, “Illegal mix of collations for operation ' IN '”) in python _mysql_exceptions.OperationalError:1045,“用户的访问被拒绝 - _mysql_exceptions.OperationalError: 1045, "Access denied for user 如何在python中捕获_mysql_exceptions.OperationalError:2002 - How do I catch _mysql_exceptions.OperationalError: 2002 in python 在 AppEngine 上使用 Flask 的 SQLAlchemy Python:OperationalError: (_mysql_exceptions.OperationalError) (2004, &quot;Can&#39;t create TCP/IP socket (-1)&quot;) - SQLAlchemy Python with Flask on AppEngine: OperationalError: (_mysql_exceptions.OperationalError) (2004, "Can't create TCP/IP socket (-1)") 你看到了吗 _mysql_exceptions.OperationalError“查询期间与MySQL服务器的连接丢失”被忽略 - have you seen? _mysql_exceptions.OperationalError “Lost connection to MySQL server during query” being ignored
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM