[Eisfair] E1: MYSQL: Datenbank-Speicherort

Marcus Roeckrath marcus.roeckrath at gmx.de
Di Nov 4 20:20:44 CET 2014


Hallo Holger,

Holger Bruenjes wrote:

>> Das ist nicht das Problem, sondern dass die owncloud Datenbank eben
>> gerade nicht in einem Unterverzeichnis von mysql liegt.
> 
> hmm, wenn ich da so drueber nachdenke ;-)
> 
> MySQL legt die Datenbanken immer in seinem Pfad ab, so wie er in
> my.cnf deklariert ist.
> 
> z.b.
> datadir = /var/lib/mysql

Nein, das ist gerade dass, was ich sagen will.

Ich habe auf einem System die Datenbank einiger Datenbankanwendungen
unter /var/lib/mysql/<datenbank> (pro Datenbanktabelle einzelne
Datenbankdateien), während ownclouds Datenbank (alle Tabellen und Indizes)
in /var/lib/mysql/ibdata1 liegen. 

Habe dazu etwas im WWW gefunden; es liegt am verwendeten Enginetyp; die
MYD/MYI der anderen Datenbanken stammen von einem andern Enginetyp:

You can separate Data and Index Pages from ibdata1 by enabling
innodb_file_per_table. This will cause any newly created InnoDB table to
store data and index pages in an external .ibd file.

Example
datadir is /var/lib/mysql

CREATE TABLE mydb.mytable (...) ENGINE=InnoDB;,
creates /var/lib/mysql/mydb/mytable.frm 
innodb_file_per_table enabled, Data/Index Pages Stored
in /var/lib/mysql/mydb/mytable.ibd
innodb_file_per_table disabled, Data/Index Pages Stored in ibdata1

Das blöde daran ist nur, dass Datenbanken damit über den backup-Mechanismus,
wie er in unserer Konfiguration vorliegt, gesichert werden.

Für owncload werden somit nur die frm-Dateien gebackuped
(in /var/lib/mysql_backup), aber nicht die Daten selbst.

-- 
Gruss Marcus


Mehr Informationen über die Mailingliste Eisfair