2016-05-12 19 views
8

再インストールシステムをUbuntuのためにアップグレードすると、最初のpython manage.py makemigrationsを実行しようとすると後のMySQLのDjangoのデータベースを移行することはできません、次のエラーを得た:は、Ubuntuの16.04で16.04

django.db.utils.OperationalError: (1193, "Unknown system variable 'storage_engine'") 

私のDjangoのデータベースの設定は次のとおりです。

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'license_portal', 
     'USER': '****', 
     'PASSWORD': '****', 
     'HOST': '127.0.0.1', 
     'PORT': '3306', 
     'OPTIONS': { 
      "init_command": "SET storage_engine=MyISAM", 
     }, 
    }, 
} 

図書館:

(mmslic) ➜ mmsLicenseServer git:(master) ✗ pip freeze    
Django==1.8.12 
django-admin-bootstrapped==2.5.7 
django-bootstrap3==7.0.1 
MySQL-python==1.2.5 
mysqlclient==1.3.7 
requests==2.9.1 
(mmslic) ➜ mmsLicenseServer git:(master) ✗ dpkg -l | grep -i mysql    
ii libmysqlclient-dev       5.7.12-0ubuntu1          amd64  MySQL database development files 
ii libmysqlclient20:amd64      5.7.12-0ubuntu1          amd64  MySQL database client library 
ii libmysqlclient20:i386       5.7.12-0ubuntu1          i386   MySQL database client library 
ii libqt4-sql-mysql:i386       4:4.8.7+dfsg-5ubuntu2        i386   Qt 4 MySQL database driver 
ii mysql-client-5.7        5.7.12-0ubuntu1          amd64  MySQL database client binaries 
ii mysql-client-core-5.7       5.7.12-0ubuntu1          amd64  MySQL database core client binaries 
ii mysql-common         5.7.12-0ubuntu1          all   MySQL database common files, e.g. /etc/mysql/my.cnf 
ii mysql-server         5.7.12-0ubuntu1          all   MySQL database server (metapackage depending on the latest version) 
ii mysql-server-5.7        5.7.12-0ubuntu1          amd64  MySQL database server binaries and system database setup 
ii mysql-server-core-5.7       5.7.12-0ubuntu1 
+0

本当に本当にmyisamを使いたいですか? – middlestump

+0

@middlestump私はINNODBを動作させることができませんでした。それはかなり低いパフォーマンスのサービスなので、DBのスループットは問題にはなりません! –

+0

しかし、mysqlの最近のバージョンではinnodbがデフォルトになっていますので、そのまま使えます – middlestump

答えて

18

私がしました。この問題で苦労した後、この問題はMySQL 5.7バージョンの変更であることが判明しました。

MySQL 5.7では、コマンドSET storage_engine=MyISAMは機能しません。そのため、問題ありました。

MySQL 5.7 documentationに記載されているように、代わりにdefault_storage_engineを使用してください!私の設定は

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'license_portal', 
     'USER': '****', 
     'PASSWORD': '****', 
     'HOST': '127.0.0.1', 
     'PORT': '3306', 
     'OPTIONS': { 
      "init_command": "SET default_storage_engine=MyISAM", 
     }, 
    }, 
} 
+0

ありがとうございました。このエラーは、http://seafile.comを使用して基礎となるMySQLサーバを更新する際に発生する可能性があることを指摘しておきます。 gitlab(https://github.com/haiwen/seafile/issues/1776)のこの問題も参照してください。 – benni

+0

私は最近Mac OSをきれいにインストールしていましたが、brewでmysql-serverをインストールしている間にバージョンを指定するのを忘れていましたが、デフォルトの5.7がインストールされていました。ありがとうございました! – kopos