Konfiguration Maria-DB?

Pius Noel
Pius Noel
 Member edited September 20 in Technical Support
Tagged:
Im Rahmen meiner Server-Umstellungen habe ich unter Ubuntu 16.04.3 LTS von MySQL auf Maria-DB gewechselt, was zunächst gut ging und mir bisher auch keine Probleme bereitete. 

Als ich mir gestern zu Testzwecken auf die Schnelle eine Standalone OpenSim Version 0.9 einrichten wollte, sind mir merkwürdige Fehlermeldungen aufgefallen für die ich zunächst keine Erklärung hatte:

2017-09-20 20:14:26,706 DEBUG (1) - OpenSim.Data.Migration [MIGRATIONS]: 
   Cmd was Specified key was too long; max key length is 767 bytes in SQL: 
   BEGIN; CREATE TABLE `Friends` (
    `PrincipalID` CHAR(36) NOT NULL,
`Friend` VARCHAR(255) NOT NULL,
`Flags` VARCHAR(16) NOT NULL DEFAULT 0,
`Offered` VARCHAR(32) NOT NULL DEFAULT 0,
PRIMARY KEY(`PrincipalID`, `Friend`),   
KEY(`PrincipalID`) ) ENGINE=InnoDB; 
COMMIT;
2017-09-20 20:14:26,706 DEBUG (1) - OpenSim.Data.Migration [MIGRATIONS]: An error has occurred in the migration...

Bei näherer Analyse habe ich festgestellt, dass Maria-DB die Konfiguration in der Datei /etc/my.cnf ignoriert und deshalb bei den Character Sets überall den eigenen Default von utf8mb4 anstelle der von mir früher in MySQL gesetzten Vorgabe von utf8 verwendet.

Da utf8mb4 bis zu 4 Bytes anstelle von 3 Bytes pro Zeichen verwendet ist das Feld Friend für den Primary Key zu gross, d.h. entweder muss Friend auf VARCHAR(191) gekürzt werden oder es muss explizit am Ende des CREATE TABLE Statements noch DEFAULT charset=utf8 angegeben werden.

Die Situation hat mich nun verunsichert und mich würde interessieren wie andere damit umgehen. Maria-DB scheint nur noch die Konfiguration in den .cnf Dateien unter /etc/mysql zu berücksichtigen, wobei dort die entscheidenden Einträge in den Dateien /etc/mysql/mariadb.conf.d/50-*.cnf zu finden sind.

Ist es sinnvoll diese systemweit anzupassen? Eine alternative Möglichkeit wäre die Datenbanken mit den utf8 Charactersets zu erstellen und die Vorgaben von Maria-DB zu belassen, wie sie sind.

Meine Datenbanken der Metropolis Sims haben durch die Umstellung alle den Zeichensatz utf8mb4 erhalten. Ich kann nur hoffen, dass dies keine negativen Auswirkungen hat.

Ich nehme an, aber weiss es nicht, dass dies für die an Metropolis angeschlossenen Simulatoren alles keine grosse Rolle spielt. Bei einer Standalone spielt es eh kaum eine Rolle. Anders ist es noch beim Betrieb eines Grids wo mit Sicherheit die GridUser Tabelle auch auf das Problem stossen dürfte.

Für einen kurzen Moment habe ich gedacht "runter mit Maria-DB und zurück zu MySQL". Das macht aber wenig Sinn, da der Trend der Linux Distributionen eindeutig in Richtung Maria-DB als Default DBMS geht und deshalb zukunftsweisend ist.
Tagged:

Comments

  • Mareta Dagostino
    Mareta Dagostino
     Member edited September 20
    Zufällig habe ich auch Ubuntu 16.04 LTS und MariaDB. Ich habe es so konfiguriert (also genauso als wäre es MySQL):
    https://hyperweb.eu/Ubuntu_16.04/MySql

    Viele Grüße, Mareta

    Thanked by: Pius Noel
  • Pius Noel
    Pius Noel
     Member
    Autsch, danke Mareta!

    Das Problem liegt dann wohl daran, dass ich die Anpassungen in der Datei /etc/my.cnf und nicht in der Datei /etc/mysql/my.cnf machte.

    Ich bin zwar auch auf die Idee gekommen und hatte es mit /etc/mysql/my.cnf versucht, aber ich bin mir nicht sicher, ob ich den MariaBD Server auch richtig neu gestartet habe. Ich versuche es heute nochmals mit einem Reboot :)
  • Pius Noel
    Pius Noel
     Member
    Folgendes habe ich herausgefunden:

    1) Meine mariadb-server Version ist: 10.0.31-MariaDB-0ubuntu0.16.04.2 Ubuntu 16.04
    2) /etc/mysql/my.cnf ist ein Link auf /etc/mysql/mariadb.cnf.
    3) Im Kommentar von /etc/mysql/mariadb.cnf steht:
    # The MariaDB configuration file
    #
    # The MariaDB/MySQL tools read configuration files in the following order:
    # 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults,
    # 2. "/etc/mysql/conf.d/*.cnf" to set global options.
    # 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options.
    # 4. "~/.my.cnf" to set user-specific options.
    Das erklärt zumindest warum meine Anpassungen in /etc/mysql/my.cnf nicht berücksichtigt, bzw. überschrieben werden.

    Vorläufig werde ich mal alles auf den System-Vorgaben belassen und meine OpenSim Datenbanken mit dem utf8 Zeichensatz erstellen. Die bereits bestehenden Datenbanken lasse ich mal, wie sie sind.


Sign In or Register to comment.

Welcome

It looks like you're new here. If you want to get involved, click one of these buttons!

Discussions

© Copyright 2017 - Metropolis Metaversum
All times are GMT