首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >syncdb上的Django未知系统变量“TRANSACTION”

syncdb上的Django未知系统变量“TRANSACTION”
EN

Stack Overflow用户
提问于 2013-06-05 18:08:44
回答 2查看 2.1K关注 0票数 3

我的本地Django正在启动运行在我们服务器上的manage.py syncdb脚本。

这是我在运行python manage.py syncdb时看到的错误消息,

OperationalError:(1193,“未知系统变量'TRANSACTION'")

这看起来像是一个MySQL问题,仅供参考,我在一个虚拟env中安装了MySQLpython1.2.4withDjango 1.5.1,并且运行的是MySQL版本5.6.10。

这是我当前完全来自pip list的虚拟env,

代码语言:javascript
运行
复制
Django (1.5.1)
MySQL-python (1.2.4)
pymongo (2.5.2)
python-cjson (1.0.5)
wsgiref (0.1.2)

我对Django不太精通,谷歌什么也没发现,有人能告诉我这里会发生什么吗?

以下命令的完全跟踪

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "/Users/jamesmcmahon/src/business-intelligence/mongo2mysql/venv/lib/python2.7/site-packages/django/core/management/base.py", line 222, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/Users/jamesmcmahon/src/business-intelligence/mongo2mysql/venv/lib/python2.7/site-packages/django/core/management/base.py", line 255, in execute
    output = self.handle(*args, **options)
  File "/Users/jamesmcmahon/src/business-intelligence/mongo2mysql/venv/lib/python2.7/site-packages/django/core/management/base.py", line 385, in handle
    return self.handle_noargs(**options)
  File "/Users/jamesmcmahon/src/business-intelligence/mongo2mysql/venv/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 56, in handle_noargs
    cursor = connection.cursor()
  File "/Users/jamesmcmahon/src/business-intelligence/mongo2mysql/venv/lib/python2.7/site-packages/django/db/backends/__init__.py", line 326, in cursor
    cursor = util.CursorWrapper(self._cursor(), self)
  File "/Users/jamesmcmahon/src/business-intelligence/mongo2mysql/venv/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 405, in _cursor
    self.connection = Database.connect(**kwargs)
  File "/Users/jamesmcmahon/src/business-intelligence/mongo2mysql/venv/lib/python2.7/site-packages/MySQLdb/__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "/Users/jamesmcmahon/src/business-intelligence/mongo2mysql/venv/lib/python2.7/site-packages/MySQLdb/connections.py", line 187, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
OperationalError: (1193, "Unknown system variable 'TRANSACTION'")

编辑:

我在我的settings.py中找到了引起这些问题的确切行

代码语言:javascript
运行
复制
DATABASES = {
     'default': {
        'NAME': 'test',
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'redacted',
        'PASSWORD': 'redacted',
        'HOST': 'localhost'
        'OPTIONS': { "init_command": "SET storage_engine=INNODB, SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED" }
    },
}

选项行在提交时修复了该问题。我唯一能想到的是服务器运行的是MySQL 5.5,而我在本地运行的是5.6。

我还是想弄清楚到底是怎么回事。

EN

回答 2

Stack Overflow用户

发布于 2013-10-15 14:52:44

使用

数据库={ ‘'default':{ 'NAME':'test','ENGINE':'django.db.backends.mysql','USER':'redacted','PASSWORD':'redacted','HOST':'localhost’‘选项’{ "init_command":"SET会话事务隔离级别读已提交“} },}

没有"storage_engine=INNODB“。默认情况下,MySql引擎的最新版本。

票数 6
EN

Stack Overflow用户

发布于 2016-02-19 15:17:21

  • 通过运行sudo mysqld --version检查mysql版本
  • 在MySQL5.7.11版本中,存储引擎系统变量是:default-storege-engine,因此,您的OPTIONS设置应该是:{ 'OPTIONS': { "init_command": "SET default_storage_engine=INNODB"} }
  • 若要查找系统上存储引擎变量的名称,请运行以下命令sudo mysqld --verbose --help | grep storage
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16946938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档