PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL - Datenbanken verschieben



spooky_dizzy
28.05.04, 02:12
Hallöchen,

kann mir vielleicht jemand sagen, wie ich die my.cnf ändern muß, wenn ich meine Datenbanken nicht mehr unter /var/lib/mysql/ anlegen möchte? :confused: Oder muß ich die Änderungen evtl. an einer anderen Stelle vornehmen? - Wenn ja - wo?

Hintergrund ist der, daß ich auf meiner bisherigen Partition nicht mehr viel Platz habe. Auf einer anderen (z.B.: /mnt/meine_Partiton) allerdings schon - und genau da sollen alle DBs aus dem bisherigen Verzeichnis hin. Das Kopieren wäre ja nicht das Thema - nur soll der Server die DBs ja auch wiederfinden :rolleyes:

Ich würde mich freuen, wenn mir vielleicht jemand 'nen Tipp geben könnte :)

Gruß - dizzy

Pingu
28.05.04, 09:09
Hi,

also mit verchieben habe ich bisher nur schlechte Erfahrungen gemacht. Vielleicht habe ich es bisher auch falsch gemacht, aber egal.

Die sicherste Methode ist es, die DB mit mysqldump auszulesen, die Datenbank neu erstellen mit den entsprechenden Einstellung und zum Schluß den Dump zurück zu spielen.

Gruß

Pingu

drcux
28.05.04, 10:34
Bei mir, SuSE 9.0 wird die "Datadir" in /etc/init.d/mysql bestimmt...

# grep -r "/var/lib/mysql" /etc/*
[...]
/etc/init.d/mysql:datadir=/var/lib/mysql
/etc/init.d/mysql:pid_file=/var/lib/mysql/mysqld.pid
/etc/init.d/mysql:socket=/var/lib/mysql/mysql.sock
[...]

spooky_dizzy
28.05.04, 11:47
@drcux
erst mal vielen Dank für Deinen Tipp :)
Richtig - habe da gerade mal reingesehen und die folgenden Zeilen gefunden:



# The following section has been taken from
# the original MySQL init script
basedir=/usr
datadir=/var/lib/mysql
mysql_daemon_user=mysql
pid_file=/var/lib/mysql/mysqld.pid
socket=/var/lib/mysql/mysql.sock
MYADMIN=/usr/bin/mysqladmin


... mit Deinem Hinweis auf "Datadir" bedeutet das also, daß ich die Zeile:



datadir=/var/lib/mysql


... einfach nur in



datadir=/mnt/meine_Partiton


... umbenennen müßte und sämtliche Verzeichnisse, die Datenbanken repräsentieren (z.B.: "TelefonDB" oder "FunDB", aus /var/lib/mysql nun nach /mnt/meine_Partition verschieben müßte?

... öööööhhhhhmmmm ...

Soll die Socket-Datei dabei im bisherigen Verzeichnis bleiben - oder muß alles auf die neue Partition kopiert und müssen alle Pfade aus dem obigen Code geändert werden, die auf /var/lib/mysql verweisen?

Gruß - dizzy

drcux
28.05.04, 12:19
ich würde alles rüberkopieren:

mysql stoppen

alles von /var/lib/mysql nach /mnt/wasauchimmer kopieren/umändern
chown mysql:root /mnt/wasauchimmer

mysql starten

thom01
29.05.04, 08:26
Ich würde den Pfad in der Konfiguration gar nicht ändern, sondern einen Link setzen (ln -s). Ansonsten kann es passieren, dass du beim nächsten Update möglicherweise im Regen stehst, falls die init-Datei auch überschrieben wird und er dann alles wieder am alten Ort sucht.