当前位置: 首页 > 知识库问答 >
问题:

Django和mysql连接器python的AttributeError

鲁展
2023-03-14

我在django数据库中使用了SQLite,我想在Synology NAS中使用一个MariaDb。

我在Python 3.9.0+和MariaDB 10.3.24上使用Django 3.2

我使用pip包mysql-connector-python==8.0.23作为mysql连接器。

DATABASES = {
    'default': {
        'ENGINE': 'mysql.connector.django',
        'NAME': 'energyHomeWeb_django',
        'USER': 'energyHomeWeb',
        'PASSWORD': 'password',
        'HOST': '192.168.1.123',
        'PORT': '3307',
        'OPTIONS': {
            'autocommit': True,
        },
    }
}

当我想启动或迁移服务器时,出现以下错误:

      Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/usr/lib/python3.9/threading.py", line 950, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.9/threading.py", line 888, in run
    self._target(*self._args, **self._kwargs)
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/utils/autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 121, in inner_run
    self.check_migrations()
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/core/management/base.py", line 486, in check_migrations
    executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/migrations/executor.py", line 18, in __init__
    self.loader = MigrationLoader(self.connection)
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/migrations/loader.py", line 53, in __init__
    self.build_graph()
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/migrations/loader.py", line 220, in build_graph
    self.applied_migrations = recorder.applied_migrations()
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/migrations/recorder.py", line 77, in applied_migrations
    if self.has_table():
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/migrations/recorder.py", line 55, in has_table
    with self.connection.cursor() as cursor:
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/backends/base/base.py", line 259, in cursor
    return self._cursor()
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/backends/base/base.py", line 235, in _cursor
    self.ensure_connection()
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
    self.connect()
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/backends/base/base.py", line 202, in connect
    self.init_connection_state()
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/mysql/connector/django/base.py", line 341, in init_connection_state
    if self.features.is_sql_auto_is_null_enabled:
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/backends/mysql/features.py", line 150, in is_sql_auto_is_null_enabled
    return self.connection.mysql_server_data['sql_auto_is_null']
  File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/mysql/connector/django/base.py", line 290, in __getattr__
    raise AttributeError
AttributeError

我该怎么解决呢?

附注:我不使用mysqlclient,因为它不能在我的virtualenv上工作,我也不知道如何使用它。

共有1个答案

尉迟阳煦
2023-03-14

发动机不正确

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'energyHomeWeb_django',
        'USER': 'energyHomeWeb',
        'PASSWORD': 'password',
        'HOST': '192.168.1.123',
        'PORT': '3307',
        'OPTIONS': {
            'autocommit': True,
        },
    }
}
 类似资料:
  • 问题内容: 因此,我一直在尝试使用python进行一些数据库更新,并且在设置整个开发环境时,遇到了这三件事,这让我感到头晕。 有MySQLdb 有mysqlclient 然后是一个mysql连接器python 它们分别是什么,区别和在哪里使用?谢谢 问题答案: MySQLdb是围绕C模块的瘦Python包装器,该模块实现MySQL数据库的API。 有MySQLDb1包装的版本中使用前一段时间,现在

  • 我在尝试连接到数据库时遇到以下错误: java.sql.没有找到适合jdbc:mysql://localhost:3306/等的驱动程序。 MySQL连接器。jar位于WEB-INF/lib文件夹中 以下内容已添加到pom中。xml文件: 如有任何帮助/指导,将不胜感激。

  • 问题内容: 我正在尝试在Heroku上以RDS实例作为数据库后端部署Django应用。一切正常,直到我尝试加密连接,然后出现此错误: 设置如下: 标准Django应用程序 具有安全组的MySQL RDS实例允许来自所有IP地址的连接 MySQL用户设置为允许来自任何主机的连接 亚马逊的pem已下载并在Django设置中指定 在Heroku上: 在Django设置中: 我已经尝试搜索,并且已经阅读了

  • 我面临一个问题,如果更改MySQL连接器Jar版本,我会遇到某些错误。我的代码在JBoss4.0.4.ga版上运行良好。然后我用连接器jar版本mysql-connector-java-5.1.36-bin将JBoss升级到Wildfly,并且没有对运行良好的代码做任何更改。现在,每当我添加一些新行,我就会得到一个错误,说生成的密钥没有被请求。 之前我认为这可能是因为服务器(JBoss)升级的问题

  • 问题内容: 我想动态更改插入数据的表的变量名。 这目前有效, 但是,当我尝试对表名(在这种情况下为“ FoodPorn”)执行相同操作时,对于动态表(如本例中的MachinePorn), 我得到这个错误, 这使我相信我无法通过这种方式执行操作,因此我想问一下如何执行该操作,以便最终可以在表中传递变量名,而不必每次都对其进行硬编码。 问题答案: 显示mysql连接器的异常是告诉您该表在您的数据库中不

  • 我试图在XAMPP上安装一个脚本,但出现以下错误: 致命错误:未捕获错误:调用未定义的函数mysql_select_db()在D:\xampp\htdocs\扩展\安装\step_1.php:44 堆栈跟踪:#0{main}在D:\xampp\htdocs\extend\install\step_1中抛出。php在线44 我的44号线是 我怀疑脚本连接是否有助于解决这个问题?