ubuntuusers.de

MySQL DB auf anderer Partition

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

master.lala

Anmeldungsdatum:
29. Januar 2007

Beiträge: Zähle...

Hello Leute,

habe auf Ubuntu-Server MySQL 5.0 installiert, war alles kein Problem.
Ich habe 2 Partitionen: hda und hdc1.

Auf hda läuft MySQL, Ubuntu, Apache2 und Tomcat. Da ich aber meine Tabellen nicht auf der gleichen Disk haben will wie das Betriebssystem, würde ich nun gerne eine Datenbank auf hdc1 anlegen. Nur wie genau mach ich das? Ich weiß dass ich eine Datenbank mit CREATE database ... anlegen kann, nur muss ich ja dann auch irgendwo angeben können dass ich das ganze auf hdc1 speichern will oder?

Bitte helft mir ich bin verzweifelt 🙄

Lg Viki

Chrissss Team-Icon

Anmeldungsdatum:
31. August 2005

Beiträge: 37971

@master.lala
Ich habe mir erlaubt deinen Beitrag abzutrennen. Erstelle doch bitte einen eigenen Thread für eine komplett andere Fragestellung

Zu Frage:
Der Pfad zu den Datenbanken wird in der /etc/mysql/my.cnf unter

datadir         = /var/lib/mysql


definiert.

Tschuess
Christoph

PS: Ich habe das mal hier

MySQL#head-2ffcc7b346dc89ef17c5cb69b5f46e8a16c4085f

hinzugefügt.

otzenpunk Team-Icon

Avatar von otzenpunk

Anmeldungsdatum:
17. Oktober 2005

Beiträge: 8691

Wohnort: Hamburg-Altona

Am besten gleich die Partition als /var/lib/mysql ins Dateisystem einbinden, würde ich sagen. Dann spart man sich Probleme, die andere Pakete evtl. mit unkonventionellen Speicherorten der Tabelle haben könnten.

adun Team-Icon

Avatar von adun

Anmeldungsdatum:
29. März 2005

Beiträge: 8606

Noch besser ist /var gleich ganz auszulagern, verhindert Probleme, die auftreten wenn / anfängt voll zu laufen 😉 (kann man natürlich auch mit quotas umgehen)

otzenpunk Team-Icon

Avatar von otzenpunk

Anmeldungsdatum:
17. Oktober 2005

Beiträge: 8691

Wohnort: Hamburg-Altona

adun hat geschrieben:

Noch besser ist /var gleich ganz auszulagern

Das eine schließt das andere ja nicht aus. /var lager ich eigentlich immer aus, zumindest bei Servern. Aber sowas wie /var/spool/cyrus kommt dann nochmal auf 'ne eigene Partition.

Quotas helfen dir übrigens wohl wenig, wenn Root dir via /var/cache/apt/archives/ das /-Dateisystem vollmüllt.

master.lala

(Themenstarter)

Anmeldungsdatum:
29. Januar 2007

Beiträge: 6

Vielen Dank für die raschen Antworten!!

Zu dem ersten Ansatz:
Habe hdc1 als /d gemountet, und dann im my.cnf geändert, trotzdem legt er mir die Datenbank noch immer im Verzeichnis /var/lib/mysql an...

Zu dem zweiten Ansatz:
Habe in der fstab bei hdc1 den mount point auf /var/lib/mysql geändert, und wollte das dann so einbinden:

mount -t ext3 /dev/hdc1 /var/lib/mysql

Er schreibt mir aber: mount: wrong fs type, bad option, bad superblock on /dev/hdc1

Wenn er damit das ext3 meint, das müsste stimmen, denn das steht in der fstab so drinnen.

otzenpunk Team-Icon

Avatar von otzenpunk

Anmeldungsdatum:
17. Oktober 2005

Beiträge: 8691

Wohnort: Hamburg-Altona

Und auf ext3 formatiert ist die Partition?

master.lala

(Themenstarter)

Anmeldungsdatum:
29. Januar 2007

Beiträge: 6

Soweit ich weiß ja, das steht zumindest so in fstab drinnen ... in der Spalte type steht bei hdc1 ext3 ...

In der syslog steht drinnen:

No journal on filesystem on hdc1

was immer das heißen mag ...

otzenpunk Team-Icon

Avatar von otzenpunk

Anmeldungsdatum:
17. Oktober 2005

Beiträge: 8691

Wohnort: Hamburg-Altona

Nee, in der Fstab steht drinnen, mit welchem Dateisystem du die Partition mounten möchtest. (Dann kannst du dir beim Mounten die -t-Option und alles andere sparen und nur noch mount /verzeichnis eingeben.)

Das tatsächliche Dateisystem wird bei der Formatierung festgelegt. Die Fehlermeldung, die du erhalten hast, lässt darauf schließen, dass die Partition entweder gar nicht, oder mit einem anderen Dateisystem formatiert wurde. (Wahrscheinlich letzteres, denn als /d konntest du sie ja mounten.)

Als ext3 formatieren geht übrigens so:
ACHTUNG: Selbstverständlich gehen dabei alle Daten verloren, die sich auf der Partition befinden!

mke2fs -j -m 1 -T largefile4 /dev/hdc1


Die Option -j erzeugt ein Journal, dass ein ext2-System zu einem ext3-System macht.
-m 1 bewirkt, dass 1 % der Partition nur von Root belegt werden dürfen, (damit User die Partition niemals ganz füllen können). Der Standardwert von 5 ist bei heutigen Plattengrößen viel zu hoch. Manchmal könnte sogar ein noch kleinerer Wert wie 0.1 angebracht sein.
-T largefile4 optimiert das Layout auf wenige, sehr große Dateien, wie ich das mal auf einer DB-Partition vermuten würde. Andere Werte wären z.B. small (viele kleine Dateien, z.B. Mail-Spool), normal (Standard) und largefile.

P.S.: Aus einem ext2-System ein ext3-System machen geht ohne Formatieren, nämlich so:

tune2fs -j /dev/hdc1

P.P.S.: Dein /d ist aber auf /dev/hdb1 gemountet, nicht auf /dev/hdc1.

P.P.P.S.: Terminalausgaben kann man sehr gut per Copy/Paste in ein Forum einfügen, was sie dann auch gleich zitierfähig macht.

master.lala

(Themenstarter)

Anmeldungsdatum:
29. Januar 2007

Beiträge: 6

Mah danke das wars 😉

Wusste das nicht, dass man in fstab das nicht sieht welchen typ das hat...

Für die Zukunft: wo könnte ich denn nachschaun welchen typ ein device hat wenn ich es nicht weiß?

Vielen Dank nochmal!!!

So nächste Fehlermeldung: ich will jetzt mysql aufrufen, um eine datenbank anzulegen

Can't connect to local Mysql server through socket /var/run/mysql/mysqld.sock

Hab nachgschaut, die datei mysqld.sock gibts in dem verzeichnis gar ned...

Lg Viki

otzenpunk Team-Icon

Avatar von otzenpunk

Anmeldungsdatum:
17. Oktober 2005

Beiträge: 8691

Wohnort: Hamburg-Altona

Du kannst eigentlich immer eine Partition mit -t auto mounten. Dann kannst du mit mount ohne Argumente nachschauen, welches Dateisystem da drauf ist.

otzenpunk Team-Icon

Avatar von otzenpunk

Anmeldungsdatum:
17. Oktober 2005

Beiträge: 8691

Wohnort: Hamburg-Altona

Läuft der Server denn überhaupt? Mach mal sudo /etc/init.d/mysql restart

master.lala

(Themenstarter)

Anmeldungsdatum:
29. Januar 2007

Beiträge: 6

Na läuft nicht mehr ...

Lässt sich aber nicht mehr starten:

failed or took more than 6 s.
/usr/bin/mysqladmin: connect to server at 'localhost' failed

error: Can't connect tolocal mysql server through socket /var/run/mysqld/mysqld.sock

ich habe diese datei mysqld.sock nicht im verzeichnis var/run/mysqld drinnen, finde sie mit find/locate auch nicht...

otzenpunk Team-Icon

Avatar von otzenpunk

Anmeldungsdatum:
17. Oktober 2005

Beiträge: 8691

Wohnort: Hamburg-Altona

Das ist auch keine gewöhnliche Datei, sondern ein Socket. Also eine Art Schnittstelle, worüber das Admin-Programm mit dem Server kommuniziert. Dieses Socket wird, so weit ich weiß, vom Server erst erzeugt, wenn er läuft, d.h. das Fehlen ist ein Zeichen, dass der Server gar nicht startet. Warum er sich aber weigert, zu starten, weiß ich jetzt nicht. Vielleicht gibt's ja ein paar Logeinträge dazu?

master.lala

(Themenstarter)

Anmeldungsdatum:
29. Januar 2007

Beiträge: 6

mhm ... die logeinträge sind leer ...

und im google hab i no nix gscheits dazu gefunden ...

mein stiefvater wird hocherfreut sein wenn er draufkommt dass i erm den server kaputt gmacht hab 🙄

ich könnte ich neu installieren?? (einfach drüber oda)

Antworten |