Schlagwort-Archive: mysql

Moodle 2.9.x Teil I

Moodle 2.9.x braucht als DB-Engine zwingend InnoDB und läuft nicht mehr mit MyISAM. Im Verlauf des Updates meldet sich deswegen Moodle mit der Meldung

unsupported_db_storage_engine

Erster Schritt ist die Kontrolle, ob die eigene mySQL DB InnoDB überhaupt unterstützt. Hierzu z.B. in phpmyadmin anmelden und dort auf dem Reiter SQL

SHOW ENGINES

absetzen [1]. Meist zeigt die Ausgabe das hier:

showengines

und alles ist gut. Wenn nicht, dann hat man richtig Arbeit an der Backe und muss zuerst die MySQL Installation auf Vordermann bringen.

Dann im Backend von Moodle (als Administrator) die URL wie folgt anpassen:

https://www.meinmoodle.tld/admin/tool/innodb/index.php

und der Migrationsprozess rattert los. Das kann dauern. Lange.

Moodle schimpft dann evtl. über Tabellen im Antelope Format, statt des gewünschten Barracuda:

unsupported_db_table_row_format

Hier ist man nun auf die Shell gezwungen, wenn ich das richtig sehe. DB-Experten mögen mich korrigieren.

Erst einmal nachschauen, welche Tabellen überhaupt bearbeitet werden müssen. Das geht mit einem Script, das Moodle mitbringt und das über dem Moodle-Stammverzeichnis ausgeführt werden muss:

sudo -u www-data /usr/bin/php moodle/admin/cli/mysql_compressed_rows.php --list

Bei mir ergab das

mdl_data                        Compact     (needs fixing)
mdl_data_fields                 Compact     (needs fixing)
mdl_enrol_paypal                Compact     (needs fixing)
mdl_lti                         Compact     (needs fixing)
mdl_user                        Compact     (needs fixing)
mdl_user_info_field             Compact     (needs fixing)

was sich mit Hilfe des oben genannten Scripts durch den Schalter –fix jedoch nicht reparieren lässt, weil man hierzu mehr Rechte innerhalb der MySQL-DB benötigt, als bei mir hier der Apache hat.

Moodle selbst läuft auch unter Version 2.9.x noch mit Antelope – das Upgrade kann also stattfinden. Da ich die Nebenwirkungen von Barracuda schlecht abschätzen kann, wenn ich mit der DB-Kompression spiele (da hängen auch noch WordPresse und Typos mit dran), bespreche ich mich mal lieber zuerst mit Frank. Mal sehen, was der meint – und dann geht es weiter.

 

 

Paranoia

Es war wohl eine Mischung aus schon lang bestehender Paranoia, dem anstehenden Update auf die aktuelle WP Version und ein paar Seiten in der aktuellen c’t, die dazu führte, dass ich mein Blog in einen Unterordner meiner Hauptdomain umgezogen habe: So steht mir ein Zertifikat für eine verschlüsselte Verbindung zur Verfügung und ich kann meinen Anmeldeprozess am Blog etwas ruhiger abwickeln.

Insgesamt betrachtet war der Umzug ein Klacks: Ein paar Anpassungen im Apache, eine rewrite rule für die alte Domain und ein kurzfristig installiertes Plugin für Anpassungen in der MySQL Datenbank selbst erledigten den Umzug in wenigen Minuten.

MySQL root Passwort zurücksetzen

Viele Köche und der Brei. Auf dem Testserver der Computer-AG werkeln so viele mit Rootrechten parallel, dass man  gelegentlich in seine Anwendungen nicht mehr hinein kommt. Gestern so geschehen mit dem root Passwort für den MySQL Server. Wie also zurück setzen?

1. Schritt: Den MySQL Server anhalten:

/etc/init.d/mysql stop

2. Schritt: MySQL Server starten und auf eine Passwortabfrage verzichten:

mysqld_safe –skip-grant-tables

3. Schritt: Als root am MySQL Server anmelden:

mysql -u root

4. Schritt: In der Datenbank mysql das Passwort ersetzen:

use mysql;
update user set password=PASSWORD(„NEW-ROOT-PASSWORD“) where User=’root‘;
flush privileges;
quit

5. Schritt: MySQL Server wieder anhalten und erneut starten:

/etc/init.d/mysql stop

/etc/init.d/mysql start

Quellen: A und B – diese Schritte gelten weitgehend ohne Berücksichtigung der MySQL Version.

OOo Mysql Connect mit ODBC (64 Bit)

Der Unterschied bei 64 Bit Clients zu der Konfiguration von 32 Bit Clients ist minimal und eigentlich ergibt sich dieser aus der odbcinst.ini selbst:

[MYSQL]
Description    = MYSQL
Driver        = /usr/lib
Driver64    = /usr/lib/odbc/libmyodbc.so
Setup        = /usr/lib
Setup64        = /usr/lib/odbc/libodbcmyS.so
UsageCount    =
CPTimeout    =
CPReuse        =
FileUsage    = 1

Wie leicht zu sehen ist wurden die Zeilen Driver und Driver64 sowie Setup und Setup64 vertauscht. Jetzt gilt es, die Zeichensatzprobleme in den Griff zu bekommen.

OOo Mysql Connect mit ODBC (32 Bit)

Für 32 Bit Systeme hatte ich den Zugriff eines lokalen OpenOffice Base als Client auf eine entfernte Mysql DB schon vor einiger Zeit mit Hilfe einiger Anleitungen konfiguriert bekommen. Aber nachdem viel Wasser den Neckar hinunter lief, war die Erinnerung schlicht weg. Hier die Wiederholung:

sudo apt-get install libmyodbc odbcinst unixodbc

Für den Komfort und Wohlfühlfaktor:

sudo apt-get install unixodbc-bin

Damit geht dann alles grafisch mit Hilfe von

sudo ODBCConfig

Aber das wäre ja öde. Also von Hand:

sudo vi /etc/odbc.ini

Hier dann die folgenden Einträge vornehmen:

[Name der Verbindung]
Description     = Beschreibung der Verbindung
Driver          = MYSQL
Server          = ip.adresse.mysql.server
Database    = datenbankname
Port              = 3306
Socket          =
Option         =
Stmt              =
PWD            = supergeheim
UID             = username

Dann die zweite Datei anlegen (sie existiert noch nicht):

sudo vi /etc/odbcinst.ini

Diese mit folgendem Eintrag füllen:

[MYSQL]
Description = MYSQL
Driver            = /usr/lib/odbc/libmyodbc.so
Driver64       = /usr/lib
Setup             = /usr/lib/odbc/libodbcmyS.so
Setup64        = /usr/lib
UsageCount    =
CPTimeout       =
CPReuse            =
FileUsage          = 1

Erstaunlich fand ich, dass Lucid 32 Bit hier die Angaben zu Driver64 und Setup64 wollte. Vorher kam bei mir keine Verbindung zustande.

Jetzt konnte ich eine Verbindung von OpenOffice.org Base zum entfernten MySQL Server herstellen. Ach ja: Derartige Spielchen mit entfernten MySQL Servern sind sicherlich ein Sicherheitsrisiko, wenn der Datenbankserver offen im Netz hängt. Die Lösung ist ein Tunnel mit Hilfe von OpenVPN, der hier aber nicht beschrieben ist.

Im nächsten Eintrag das Gleiche zum Thema 64 Bit – wenn es denn Unterschiede geben sollte.