【问题标题】:Django Sqlite3 programming errorDjango Sqlite3 编程错误
【发布时间】:2018-08-18 09:36:25
【问题描述】:

我对 Django 很陌生。我使用 Python v3.6 和 Django V2.1 创建了一个示例项目。最初,我使用的是默认的 sqlite3 数据库,但现在我们计划将其更改为 Mysql。为此,我已经安装了所有必要的插件。另一方面,除了 admin 之外,我没有使用 sqlite3 创建任何表。

如果它在默认数据库中工作正常,当我将其更改为 MySQL 时,我会收到一周无法解决的错误 :-(

    System check identified no issues (0 silenced).
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x0000000003A93C80>
Traceback (most recent call last):
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\django\db\backends\base\base.py", line 2
16, in ensure_connection

    self.connect()
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\django\db\backends\base\base.py", line 1
94, in connect
    self.connection = self.get_new_connection(conn_params)
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\django\db\backends\mysql\base.py", line
227, in get_new_connection
    return Database.connect(**conn_params)
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\MySQLdb\__init__.py", line 86, in Connec
t
    return Connection(*args, **kwargs)
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\MySQLdb\connections.py", line 204, in __
init__
    super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2059, "Authentication plugin 'caching_sha2_password' cannot be loaded: The speci
fied module could not be found.\r\n")      
self.connect()
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\django\db\utils.py", line 89, in __exit_
_
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\django\db\backends\base\base.py", line 2
16, in ensure_connection
    self.connect()
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\django\db\backends\base\base.py", line 1
94, in connect

    self.connection = self.get_new_connection(conn_params)
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\django\db\backends\mysql\base.py", line
227, in get_new_connection
    return Database.connect(**conn_params)
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\MySQLdb\__init__.py", line 86, in Connec
t
    return Connection(*args, **kwargs)
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\MySQLdb\connections.py", line 204, in __
init__
self.connect()
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\django\db\utils.py", line 89, in __exit_
_
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\django\db\backends\base\base.py", line 2
16, in ensure_connection
    self.connect()
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\django\db\backends\base\base.py", line 1
94, in connect

    self.connection = self.get_new_connection(conn_params)
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\django\db\backends\mysql\base.py", line
227, in get_new_connection
    return Database.connect(**conn_params)
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\MySQLdb\__init__.py", line 86, in Connec
t
    return Connection(*args, **kwargs)
  File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\MySQLdb\connections.py", line 204, in __
init__
django.db.utils.OperationalError: (2059, "Authentication plugin 'caching_sha2_password' cannot be loaded: The specifi
ed module could not be found.\r\n")

If you suspect this is an IPython bug, please report it at:
    https://github.com/ipython/ipython/issues
or send an email to the mailing list at ipython-dev@python.org

You can print a more detailed traceback right now with "%tb", or use "%debug"
to interactively debug it.


Extra-detailed tracebacks for bug-reporting purposes can be enabled via:
    %config Application.verbose_crash=True

Error in atexit._run_exitfuncs:
    Traceback (most recent call last):
      File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\IPython\core\history.py", line 780, in w
    riteout_cache
        self._writeout_input_cache(conn)
      File "C:\Users\ccduce\AppData\Local\Continuum\miniconda3\lib\site-packages\IPython\core\history.py", line 764, in _
    writeout_input_cache
        (self.session_number,)+line)

    sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in that same thread.The object was crea
    ted in thread id 2548 and this is thread id 11036

设置.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'shield_dev',
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': 'localhost',   # Or an IP Address that your DB is hosted on
        'PORT': '3306',
    }
}

请让我知道我做错了什么

【问题讨论】:

  • 你试图从哪里运行 Django 服务器? IPython 是如何参与的?
  • @Cyrlop 我在 Window 7 中运行我的 Django
  • 你的 MYSQL 中有名为 shield_dev 的数据库吗?
  • @JerinPeterGeorge 不,我没有。我有使用 Ruby on Rails 的经验,因此在该框架中,它会自动为我们创建数据库。这就是我没有手动创建数据库的原因。
  • 检查你的mysql数据库

标签: python mysql django


【解决方案1】:

我遇到了同样的问题,就这样处理:

  1. 安装更新版本的 sqlite3 3.2.0
  2. 删除db.sqlite3(之后我没有创建新的)
  3. run command : python manage.py migrate
  4. python manage.py runserver
  5. python manage.py createsuperuser
  6. 登录然后添加新用户或在模型表中添加一些内容。

祝你好运

【讨论】:

    猜你喜欢
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 2021-03-12
    • 2015-05-02
    • 2011-07-13
    • 2013-12-13
    • 1970-01-01
    相关资源
    最近更新 更多