ownCloud 7 – Konvertierung von SQLite zu MySQL

Ausgabe des Skripts occ
Ausgabe des Skripts occ

Nach dem Update auf die neue Version von ownCloud blieb für mich lediglich ein weiterer Schritt: der Wechsel der Datenbank. Da ich ursprünglich SQLite als Datenbank verwendete, stand die Änderung auf MySQL an. In der Version 7 wurde in ownCloud ein entsprechendes Skript integriert, mit dem eine solche Konvertierung möglich sein sollte. Hauptgrund für die Konvertierung ist die Performance. ownCloud empfiehlt bei „größeren“ Installationen eine Umstellung auf MySQL/MariaDB. Nun habe ich nicht wirklich eine große Installation, aber was nicht ist kann ja noch werden …

Das bereitgestellte Skript befindet sich im Verzeichnis von ownCloud. Die Anwendung war dann doch mit einigen Stolpersteinen versehen und lief nicht „out of the Box“. In meiner Umgebung (Server mit Debian 7.6) führten folgende Schritte zum Erfolg:
  1. Bashskript occ ausführbar machen. Ich habe das mit Hilfe von webmin erledigt
  2. Anlegen einer Datenbank in MySQL. Ich habe meine Datenbank owncloud genannt
  3. Wechsel auf die Kommandozeile
  4. Wechsel in das Verzeichnis von ownCloud – in meiner Umgebung /var/www/owncloud
  5. Aufruf des Skripts mit den entsprechenden Optionen
    ./occ db:convert-type –password=“***“ –all-apps mysql user localhost owncloud
    Die entsprechenden Parameter habe ich der Diskussion zum Thema auf github.com entnommen. Auf die Schnelle konnte ich keinen Hinweis in der ansonsten sehr vollständigen Dokumentation von ownCloud finden
  6. Die entsprechenden Abfragen des Skripts beantworten (Passwort der Datenbank und Frage zum Fortsetzen mit Y beantworten)
Fertig! OwnCloud hat vor der Konvertierung beanstandet, dass meine Installation SQLite verwendet. Nach Aussführung des Skripts wird dieser „Fehler“ nicht mehr angezeigt.
Als letzter Schritt sollte noch die Anpassung des Backup-Skriptes erfolgen, die Befehle zur Sicherung einer SQLite-Datenbank unterscheiden sich deutlich von denen für MySQL

 

 

38 Antworten auf „ownCloud 7 – Konvertierung von SQLite zu MySQL“

  1. Hallo Karsten,

    insgeheim hatte ich ja gehofft, dass Du was zur DB-Konvertierung schreibst – Bingo! und Danke. Gestern hatte ich noch schnell das Update auf die neue Version durchgeführt (ich betreibe meine Installation auf einem Pi), welches reibungslos funktionierte. Jetzt hat auch die Umstellung auf MySQL schnell geklappt.
    Dadurch – und mit der neuen Version – ist auch die Geschwindigkeit auf dem Pi erträglich.

  2. Hallo punktl,
    gern geschehen. Freue mich immer wenn meine Beiträge helfen und noch mehr freue ich mich, wenn dann auch eine Reaktion erfolgt.
    Hattest du das Problem mit den Apps auch wie im nächsten Artikel beschrieben?

    Karsten

  3. Moin Karsten,

    ich habe jetzt extra mal „Documents“ aktiviert -> kein Fehler. Activities ist aktiviert und hat ebenfalls bei der Umstellung keinen DB-Fehler hervorgerufen.
    Ich lese schon eine geraume Weile hier bei Dir mit, denn meine Suche nach „Owncloud“ und „Raspberry“ hat mich auf Dein Blog geführt.

  4. Hallo,
    danke für die Auskunft. Habe ich selbst wohl irgendwo einen Fehler bei der Datenbankerstellung gemacht haben …
    Schön mal wieder einen „Stammleser“ kennzulernen 😉

  5. Hallo Karsten,

    vielen Dank für deine Ausführungen zu der Datenbankkonvertierung. Als Einsteiger auf der Kommandozeile haben sie mir zum Erfolg verholfen!

    Christian

  6. Gern geschehen, mir erschließt sich im Moment nicht, warum die Dokumentation des Scripts so „übersichtlich“ist.
    Kann aber noch kommen …

  7. Hey,

    ich bin hier auf deinen Blog gestoßen, weil ich seit stunden dabei bin, den Versuch durchzuführen meine sqlite Datenbank auf mysql zu konvertieren. Das hat bisher nicht geklappt. Ich habe keine berechtigungen (Debian root Terminal). Wenn ich sudo davor schreibe, kann er den befehl nicht finden und zerschreddert den befehl.

    Ich habe auch schon versucht, eine eigene Mysql datenbank zu erstellen, doch konnte ich mich mit dieser nicht einmal anmelden. Dort erschien immer ein Fehler, dass die Benutzernamen oder Passwörter falsch sind.

    Wenn du mir helfen könntest, wäre ich dir sehr dankbar.

    Gruß

    Alex

  8. Hallo Alex,

    bin erst heute wieder „voll einsetzbar“, hatte Urlaub. Erste Frage: Hast du das Skript auf ausführbar gesetzt? (Eigenschaften executable). Als root brauchst du kein su und sudo gibt es bei Debian nicht …

    Gruß
    Karsten

  9. Hallo Alex
    ich prüfe, ob ownCloud für mich Sinn auf einer NSA325-V2 Sinn macht,
    Ich konnte auch 7.0.2 mit SQLite ohne Probleme installieren. Die Performance ist aber nicht überragend. Daher wollte ich jetzt mal mit mySQL testen. Doch die Installtion geht schief, da ein Treiber für die Zuordnung Datenbank und ownCloud fehlt. Im Zyxcel-Forum hat diesbezüglich ein anderer User eine Ftage ohne Erfolg gestellt. (siehe hier auch Alex)

    Daher mein Versuch, die Datenbank umzustellen. Bei „http://amp-off.com/owncloud-database-migration/“ habe ich gefunden, dass das Script umgestellt werden soll „#!/usr/bin/php –> #!/usr/local/bin/php“.

    Doch ich erhalte immer den Fehler:
    -sh: ./occ: /usr/local/bin/php/: bad interpreter: No such file or directory
    root@NSA325-v2:/i-data/md0/owncloud#
    (bzw. ohne local)

    Danach habe ich den Pfad gefunden, jedoch jetzt
    sh: ./occ: /usr/local/zy-pkgs/php/: bad interpreter: Permission denied

    Für den Ordner und php.ini habe ich maximale Rechte vergeben. Jedoch ohne Erfolg.

    Hast du eine Idee ?

    Danke im Voraus
    Jürgen

  10. Moin Jürgen,

    hast du das Skript ausführbar gesetzt? Entweder chmod +x /Pfad/Datei oder per webmin …

    Karsten

  11. Hallo Karsten

    danke für deine Antwort.
    Ich habe jetzt eine Installation von mySQL und ownCloud auf der NSA325 mittels ffp durchgeführt. Das ging.

    Jürgen

  12. Hallo Jürgen,

    ich habe deine Posts zur Installation von ownCloud 7 auf das NSA325 gelesen.
    Genau das habe ich auch vor. Mein NAS ist noch jungfräulich. Wo finde ich denn eine Anleitung wie ich mySWL und ownCloud mittels ftp installieren kann.
    Hast du eine Quelle oder kannst du kurz die Schritte erklären?

    Danke, Jens

  13. hallo,

    wollte gerade die datenbank convertieren, aber ich bekomme immer Fehler :

    root@raspberrypi:/var/www/owncloud# ./occ db:convert-type –all-apps mysql owncloud localhost owncloud
    bash: ./occ: /usr/bin/php: bad interpreter: No such file or directory

    woran liegt das?

  14. Morgen Lars,
    gibt da mehrere Möglichkeiten.
    Hast du die Datei occ.sh bearbeitet, eventuell mit einem Windowsprogramm? Andere Shell als bash auf deinem Raspi? Erste Zeile (#!/bin/bash) aus dem Skript gelöscht? PHP nicht im Verzeichnis /usr/bin/php installiert?
    So aus der Hüfte sehe ich diese Möglichkeiten …

    Karsten

  15. Hallo Karsten,

    ich verfolge schon seit längerem deinen Blog. Ich bin auf der Suche nach einen Tutorial für die OwnCloud Installation auf dem Pi drauf gestoßen.
    Deine Anleitung haben mir die Arbeit sehr erleichtert. Vielen Dank dafür!
    Ich hatte OwnCloud auf meinem Pi mit SQLlite und Backups auf eine smb Freigabe laufen und alles hat wunderbar funktioniert. Leider hat die alte SD-Karte jetzt den Geist aufgegeben bevor ich noch ein Image davon machen konnte 🙁
    Da ich jetzt noch einmal von vorne anfangen muss, würde ich gerne gleich auf nginx und MySQL setzen. Allerdings schreibst du in deinem Artikel, dass sich die Befehle für das Backup stark von denen von SQLlite unterscheiden. Könntest du mir den Backupvorgang für nginx und MySQL kurz erläutern? Wäre echt super, google bringt mir zwar einige Treffer, allerdings bin ich in Sachen Linux und Datenbanken noch ein ziemlicher Anfänger…

    Danke und viele Grüße Felix

  16. Moin Felix,

    danke für dein Feedback.
    Die Geschichte mit der SD-Card ist einer der Gründe, warum ich am Ende weg vom Raspi bin mit meiner ownCloud-Instanz …
    Zu deiner Frage: der Befehl für die Sicherung der Datenbank in Mysql lautet:
    mysqldump –lock-tables –databases a owncloud > /var/www/owncloud/data/owncloud.bak
    Findest diese Erläuterung noch einmal unter Downloads/Computerthemen/owncloud/Backup von Debian auf Synology.

    Gruß
    Karsten

  17. Super, danke! Mir ist allerdings zwischenzeitlich aufgefallen, dass ich wohl noch etwas Grundlegendes nicht verstanden habe.
    Was genau speichert die ownCloud denn in der Datenbank ab? Bei den Backups über Webmin wurden ja nur das Data- und das Config-Verzeichnis gesichert bzw. wiederhergestellt und gelöschte Dateien, Kalendereinträge und Kontakte waren nach einem Restore wieder da…
    Die Datenbank hast du ja nur in das Data-Verzeichnis „kopiert“ und dann mit gesichert. Beim Restore wurde die Datenbank ja aber nicht aus dem Dateiverzeichnis wiederhergestellt oder?

    Gruß Felix

  18. Danke nochmal für deine Antwort. Ich bin nun seit zwei Stunden dabei ein Backup meiner ownCloud einzurichten und ich schaffe es einfach nicht ein Backup der MySQL Datenbank anzulegen. Ich habe Vogesen Befehl unter Kommando vor der Sicherung ausführen in Webmin eingetragen:
    mysqldump –lock-tabels –databases owncloud > /media/owncloud/data/BackupOwnCloudDB.bak
    Meine Datenbank heist laut config.php owncloud und mein Datenverzeichnis liegt unter /media/owncloud/data.
    Wenn ich die Sicherung dann ausführen will kommt immer: vor Backup-Befehl fehlgeschlagen und das Backup wird abgebrochen.

    Bin echt am verzweifeln… Hast du eine Idee was ich falsch mache?

    Gruß Felix

  19. Hallo Felix,

    ganz kurz zum Befehl
    mysqldump --lock-tables --databases owncloud > /var/www/owncloud/data/owncloud.bak

    Sind immer 2 Striche vor „lock-tables“ und „databases“. Ist hier auf der Webseite schlecht zu erkennen …

    Karsten

  20. Hallo Karsten,
    danke für deine Rückmeldung. Ja, das bei meinem Befehl sind auch zwei Striche. Das habe ich beim durchforsten der Doku zu mysqldump auch schon gefunden. Aber das Problem besteht trotzdem… Ich habe wie in der Doku zu finden auch schon –all-databases versucht, das lock-tabels weggelassen und auch schon ein anderes Sicherungsverzeichnis angegeben. Aber immer der gleiche Fehler. Habe auch schon geprüft ob mysqldump installiert ist und und und… Hab jetzt einfach keine Idee mehr. Wenn ich keinen Befehl vor dem Backup angeben, läuft das Backup logischerweise durch. Hast du noch einen Ansatzpunkt den ich prüfen könnte?

    Vielen Dank für deine Zeit und deine Mühe! Finde ich echt super von dir, dass du dein Wissen mit anderen teilst!

    Gruß Felix

  21. Hi Felix,
    doch mal ein wenig ausführlicher:
    Mit der Datenbanksicherung sicherst du die Nutzer usw., inklusive Erweiterungen, also Apps.Das die Datenbanksicherung scheitert liegt also nicht am Befehl, dass scheint klar zu sein. Kann also nur noch eine Berechtigungsfrage sein. Wie bist du angemeldet an Webmin? Befehl mal auf der Konsole getestet?

    Karsten

  22. Hallo Karsten,
    auf die Idee bin ich heute morgen auch gekommen und habe den Befehl mal in der Konsole ausgeführt und siehe da, permission denied! Also beim Zielverzeichnis. /media/owncloud/data
    Wem muss ich da jetzt dir Berechtigungen geben und wie gebe ich sie mehreren Usern, also www-data und ?

    Vielen dank und viele Grüße

    Felix

  23. Moin Felix,

    deshalb meine Frage, wie du bei Webmin angemeldet bist. Anmeldung als root sollte dein Problem eigentlich lösen …

    Karsten

  24. Hallo Karsten, danke für deine Rückmeldung.
    Ich habe das Problem jetzt so gelöst, dass ich die Datenbank in das Config Verzeichnis gesichert habe.
    Der Befehl ist in der Konsole selbst mit sudo fehlgeschlagen…
    Jetzt läuft erstmal alles soweit.
    Danke für deine Unterstützung!

  25. root@rotable_server:/var/www/owncloud# ./occ db:convert-type –password=“meinPasswort“ –all-apps mysql ocdba localhost owncloud

    und ich bekomme folgendes:
    Creating schema in new database

    [PDOException]
    SQLSTATE[28000] [1045] Access denied for user ‚ocdba’@’localhost‘ (using password: YES)

    db:convert-type [–port=“…“] [–password=“…“] [–clear-schema] [–all-apps] type username hostname database

    was bedeutet die Fehlermeldung?

  26. Moin Rosy,

    der von dir verwendete User ocdba hat keine Rechte, dass Schema der Datenbank zu ändern. Kann auch an einem fehlerhaften Passwort liegen …

    Karsten

  27. Danke für den Artikel, habe damit meine OC Installation auf nem Cubieboard konvertiert, hat zumindest scheinbar funktioniert 🙂

  28. Moin!

    Wollte mal kurz fragen, ob man eine Konvertierung auch auf einem „normalen“ Webspace ohne SSH durchführen kann.
    Vermutlich nicht, oder?

    Grüße
    Marco

  29. Moin Marco,

    nach meinem Wissen ist die Konvertierung lediglich über die Kommandozeile möglich. Aber auch bei einem „normalen Webspace“ solltest du per SSH auf deinen Server zugreifen können …

    Karsten

  30. Hallo Karsten,

    danke für deine rasche Antwort. Wie eben noch mal mit dem Support von Hetzner abgeklärt, geht dies bei meinem Paket (Level 9) leider nicht. SSH geht bei Hetzner erst im größten Paket Level 19. Er meinte etwas von „PHP Skript basteln welches die Befehle ausführt“, da bin ich aber dann doch noch nicht firm genug darin, um überhaupt beurteilen zu können, ob das geht.

    Grüße
    Marco

  31. Admiring the persistence you put into your website and in depth information you provide. It’s nice to come across a blog every once in a while that isn’t the same outdated rehashed information. Great read! I’ve saved your site and I’m including your RSS feeds to my Google account.

  32. Hallo,

    ich habe ein Problem mit der Umstellung SQLlite zu MySQL.
    Ich habe auf einem OMV NAS Version 1.17 (Kralizec/Debian) die ownCloud 8.02 installiert.
    Nach der Installation hatte ownCloud die Benutzer des NAS mit den jeweiligen PW automatisch importiert.
    Ich kann mich mit allen Kombinationen Benutzer und PW in ownClod anmelden und Daten hoch und runterladen.
    Zusätzlich wurde noch ein admin angelegt der das Webadmin PW von OMV hat. Dieser hat lt. ownCloud Administratoren Rechte

    Melde ich mich jetzt mit dem Terminal auf dem NAS an werde ich als root@NAS: erkannt. Gebe ich jetzt den ./CC db:convert …. mit dem PW und admin
    Befehl ein bekomme ich folgende Antwort:
    Console has to be executed with the same user as the web server is operated
    Current user: root
    Web server user: www-data
    root@NAS:/var/www/owncloud#

    Ich hatte schon noch einen Benutzer root angelegt mit Administratoren Rechten und diesem im Befehl genutzt aber ich bekomme die gleiche Fehlermeldung

    Was mache ich falsch.

  33. Hallo Rüdiger,
    übersetze ich die Meldung, verlangt dein System wohl, dass du auf der Konsole als Webserveruser agierst, in deinem Fall also als www-data.

    Ich nehme an, dass du mit OMV Open Media Vault meinst.Wie loggst du dich auf der Konsole ein, per ssh?

    Gruß Karsten

  34. Hallo Karsten,

    danke für die Antwort.

    1. Ja OMV ist OpenMediaVault.
    2. Per ssh logge ich mich (auf dem OMV NAS) über WINSCP mit Benutzer root und Passwort ein. Dann rufe ich von dort Putty auf und bin dann als root mit gleichen Passwort auf dem NAS. Ich kann dort alles was ich möchte in OMV administrieren ohne Einschränkungen. Der direkt Weg über Putty zeigt das gleiche Ergebnis. Als admin + Passwort kann ich mich nicht über Terminal anmelden.

    Gruß Rüdiger

  35. Hallo Rüdiger,

    anscheinend tritt dieser Punkt erst seit owncloud 8 auf.
    Versuche folgendes:
    1. Anmeldung per Console als www-data
    2. per su Adminrechte erlangen
    3. Ausführen des Befehls

    Gruß
    Karsten

  36. Hallo Karsten,

    es liegt an ownCloud 8. Ich habe jetzt die Version 6 Installiert völlig ohne Probleme.
    Danke für die Hilfe.

    Gruß Rüdiger auch aus der Altmark

  37. Hallo Karsten,

    ich wollte heute meine Owncloud (Version 8.0.3) via occ-Tool auf MySQL umstellen. Ich habe mir dafür einen neuen MySQL-Nutzer, ebenso eine leere Datenbank angelegt (beides über webmin). Nach der leicht abgeänderten Eingabe php occ [...] werde ich normal nach dem Benutzerpasswort gefragt.
    Mein Problem:
    The following tables will not be converted:
    oc_documents_invite
    oc_documents_member
    oc_documents_op
    oc_documents_revisions
    oc_documents_session
    oc_gallery_sharing
    oc_lucene_status
    oc_permissions
    oc_pictures_images_cache

    Kann ich diese Tabellen alle einfach so vernachlässigen?

    Mit freundlichen Grüßen

    Wolf

  38. Hallo Wolf,

    eine genaue Antwort kann ich dir nicht geben. Die entscheidende Frage ist, ob du bestimmte Plugins innerhalb von ownCloud überhaupt benutzt. Lucene ist z.B. die Volltextsuche. Wenn die Datei nicht vorhanden ist, wird sie auch nicht aktualisiert …
    Meine Tendenz geht dahin, dass du die entsprechenden Dateien ignorieren kannst …

    Grüße Karsten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.