3

サーバー上で実行される manage.py syncdb スクリプトの実行で、ローカルの Django が異常終了しています。

これは、実行時に表示されるエラー メッセージですpython manage.py syncdb

OperationalError: (1193、「不明なシステム変数 'TRANSACTION'」)

参考までに、仮想環境にDjango 1.5.1とともにMySQL-python 1.2.4をインストールし、MySQLバージョン5.6.10を実行しています。

これは からの私の現在の仮想環境ですpip list

Django (1.5.1)
MySQL-python (1.2.4)
pymongo (2.5.2)
python-cjson (1.0.5)
wsgiref (0.1.2)

私は Django にあまり精通しておらず、Google で検索しても何も見つかりませんでした。

以下のコマンドの完全なトラックバック

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 で、問題の原因となっている正確な行を見つけました

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 をローカルで実行していることです。

私はまだ何が起こっているのかを正確に把握したいと思います。

4

2 に答える 2

6

使用する

データベース = {

'default': {
    'NAME': 'test',
    'ENGINE': 'django.db.backends.mysql',
    'USER': 'redacted',
    'PASSWORD': 'redacted',
    'HOST': 'localhost'
    'OPTIONS': { "init_command": "SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED"}   

}、

}

つまり、「storage_engine=INNODB」がありません。デフォルトの INNODB では、MySql エンジンの最新バージョン。

于 2013-10-15T14:52:44.963 に答える
0
  • 実行してmysqlのバージョンを確認しますsudo mysqld --version
  • mysql バージョン 5.7.11 では、ストレージ エンジン システム変数は:default-storege-engineしたがって、OPTIONS設定は次のようにする必要があります。 { 'OPTIONS': { "init_command": "SET default_storage_engine=INNODB"} }
  • システムのストレージ エンジン変数の名前を見つけるには、次のコマンドを実行します。sudo mysqld --verbose --help | grep storage
于 2016-02-19T15:17:21.053 に答える