9

DjangoのMySQLデータベースへの接続には次の設定があります。

'default': {
    'NAME' : MYSQL_DB_NAME,
    #'ENGINE' : 'mysql',
    'ENGINE' : 'django.db.backends.mysql',
    'USER' : 'ccurvey',
    'PASSWORD' : MYSQL_PASSWORD,
    'HOST' : MYSQL_HOST,
    'PORT' : '',
    'OPTIONS' : {
        'init_command' : 'set storage_engine=INNODB',
        },
    },

ここまでは順調ですね。

「init_command」に別の「set」コマンドを追加したい場合の呪文は何ですか

        'init_command' : ('set storage_engine=INNODB',
                           'set transaction isolation level read committed'),

「connect()引数はタプルではなく文字列でなければなりません」と表示されます

        'init_command' : ('set storage_engine=INNODB; set transaction isolation level read committed;'),

私にくれます

_mysql_exceptions.ProgrammingError: (2014, "Commands out of sync; you can't run this command now")
4

3 に答える 3

9

私にとってうまくいったのは:

{ 'init_command': 'set storage_engine=InnoDB; \
                   set session transaction isolation level read committed'}
于 2014-07-23T12:43:46.637 に答える
4

そうではありません:

 "init_command": 'set storage_engine=INNODB,    \
                  set transaction isolation level read committed;', }

それは:

 "init_command": 'set storage_engine=INNODB,    \
                  SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED', }
于 2012-08-28T18:50:19.930 に答える
0

@ChrisCurveyのソリューションは私にとってOKayです。

ENV:Python3.7.3 + Django2.2.1

'OPTIONS': {
    'init_command': 'SET default_storage_engine=INNODB, sql_mode="STRICT_TRANS_TABLES" ',
    'charset': 'utf8mb4',
},
于 2019-05-28T09:35:07.460 に答える