2016-05-12 5 views
8

neu installierte System auf Ubuntu Ubuntu 16.04 und als erste python manage.py makemigrations bekam der folgende Fehler zu laufen versuchen:Kann nicht django-Datenbanken auf MySQL Migration nach der Aktualisierung 16.04

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

Meine django Datenbanken Einstellungen sind:

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", 
     }, 
    }, 
} 

Bibliotheken:

(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

willst du wirklich, wirklich myisam verwenden? – middlestump

+0

@middlestump Ich konnte INNODB nicht zum Arbeiten bringen und es ist ein ziemlich leistungsschwacher Service, so dass der DB-Durchsatz kein Problem wäre! –

+0

Aber innodb ist Standard in den letzten Versionen von MySQL, so funktioniert es out of the box – middlestump

Antwort

18

Nachdem mit diesem Problem zu kämpfen ich habe festgestellt, dass das Problem eine Änderung der Version MySQL 5.7 war.

Mit MySQL 5.7 wird der Befehl SET storage_engine=MyISAM nicht funktionieren, so dass das Problem war!

Wie auf der MySQL 5.7 documentation spotted stattdessen default_storage_engine! Meine Konfiguration wurde:

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

Vielen Dank. Es wird darauf hingewiesen, dass dieser Fehler bei der Verwendung von http://seafile.com und der Aktualisierung des zugrunde liegenden MySQL-Servers auftreten kann. Siehe auch dieses Thema auf gitlab (https://github.com/haiwen/seafile/issues/1776). – benni

+0

Ich hatte vor kurzem eine saubere Installation von Mac OS gemacht und während der Installation von mysql-Server mit brew vergessen, die Version anzugeben - und die Standard 5.7 wurde installiert. Vielen Dank! – kopos

Verwandte Themen