ispconfig galera cluster mysql user table

bonkersdeluxe

New Member
Guten Tag,

Ich habe mein Galera Cluster soweit am laufen.
Jetzt ist mir aufgefallen als ich den phpmyadmin User geändert habe, das dieser nicht über alle Hosts synchronisiert wird.
Ich habe dann festgestellt, das liegt halt daran, das die mysql Datenbank für user nicht InnoDB sondern myisam ist.

Da ich wie gesagt gerade in der Testeumgebung das ganze aufbaue, meine Frage hat das nachher auswirkungen wenn Kunden angelegt werden für den Zugriff auf deren Datenbanken? Hat ispconfig eine Extra Datenbank im InnoDB Format für die mysql Berechtigungen und phpmyadmin Berechtigungen?
Wenn Ich versuche die Datenbank zu InnoDB zu konvertieren gibt ein Fehler.

ERROR 1025 (HY000): Error on rename of './mysql/#sql-29d3_a1' to './mysql/db' (errno: -1 "Internal error < 0 (Not system error)")

ist halt die Frage ob es sinnvoll ist die zu konvertieren, oder ob es einen besseren Weg gibt. bzw das überhaupt nötig ist.
Nur irgendwie mag Ich da jetzt nicht weitermachen, weil ich irgendwie das Gefühl habe dieser Fehler holt mich nachher ein und Ich habe ein riesen Problem.

Vielen Dank!

Liebe Grüße Bonkersdeluxe
 

bonkersdeluxe

New Member
So anscheinend, geht das wohl nicht.
.

Wie macht ihr das denn?
Weil wenn ein benutzer sein mysql kennwort ändert würde das ja nie auf die anderen Hosts repliziert werden. Oder macht das die dann die Option bei einem zweiten host mirror von host 1


Beispiel

webserver0001 (Beinhaltet Apache ftp ssh jail und Datenbank.
webserver0002 mirror von 0001
webserver0003 mirror von 0002


Wenn Jemand auf 0003 sein Kennwort ändert wird das dann durch die Mirror geschichte auf 0002 und 0001 zurückgespielt / geändert?
genauso wenn das auf zwei oder auf eins passiert?

Weil dann würde ich in die galera.cnf skip mysiam eintragen.
Denn nur auf den Webservern würden ja mysql user von den Kunden angelegt werden.
Auf den managment Servern nicht.
Würde Ich nur ein Kennwort ändern, müsste ich das dann manual auf allen Servern ändern...

Wie gesagt, vielleicht gibts ja noch ne andere Methode, wie macht ihr das denn?
Dankeschön!
Liebe Grüße Bonkersdeluxe
 

bonkersdeluxe

New Member
Hi nowayback,
Jep für die reinen Verzeichnisse wie Mail web etc. hatte ich ceph-fs vorgesehen. ich meinte für die Datenbank im galera Cluster wo die user Datenbank ja eine mysiam ist.
Danke Dir!

Liebe Grüße Bonkersdeluxe
 

bonkersdeluxe

New Member
Hi Till,

Also wäre es egal ob die User Datenbank dann mysiam ist.
Ich müsste also nur wenn ich mein eigenes root Kennwort ändern wollte auf jeden Server zusätzlich zur config Datei auch den mysql user aktualieseren, es sei denn ich nehme ein rename was komischerweise ja bei mir zu einem fehler führt.

Nochmals zum Verständis

man0001
man0002
man0003

Diese Server haben keine Funktion außer Manamgment Seite zur verfügung zu stellen.
webserver = nein
datenbankserver = nein
dns = nein
ftp = nein
dateiserver = nein
jail = nein
mailserver = nein

Meine Managment Nodes auf dem die Kunden ihre Daten ändern / anlegen.
die ispconfig Datenbank ist innodb und per Galera überall ausgerollt, jeder Host ist also selbst master.
Das gleiche gillt auch für die Webanwendungen

webserver0001
webserver0002
webserver0003

Diese haben die funktion bzw sollen die funktion bekommen
webserver = ja
datenbankserver = ja
dns = nein
ftp = ja
dateiserver = ja ich denke (was ist damit eigentlich gemeint)
jail = ja
mailserver = nein


Ein Kunde legt sich eine Datenbank an, dazu natürlich ein Datenbank benutzer.
Wird dann nur auf den webservern0001-0003 in der tabelle mysql.user der user angelegt?
Und die Datenbank die angelegt wird, wird die auch als myisam angelegt, oder tatsächlich als innodb?
Denn in der galera conf steht ja engine=innodb, hab ich aus einem andere forum thread daher kannte ich auch den parameter skip-myisam

### für ispconfig kompatibilität
sql_mode=NO_ENGINE_SUBSTITUTION

### nur innodb cluster sync
default-storage-engine=InnoDB
default-tmp-storage-engine=InnoDB
#skip-myisam
# EOF


Denn wenn innodb würden ja die Kundendatenbanken wieder über alle synchronisert werden?

Wenn ein Kunde über die managment server sein sql benutzer kennwort ändert. Wird dies dann nur auf den Server webserver0001-0003. Bzw alle Server die als Flag datanbankserver=ja gesetz haben vollzogen.
Habe Ich das jetzt so richtig verstanden? Oder wozu dient dann bei einem Webserver das Mirror?
Wenn die Änderungen ja auf alles Servern vollzogen wird.
Denn das überall das gleiche www Verzeichnis ist, macht ja ceph-fs. Und wenn die Datenbanken der Benutzer auch als innodb angelegt werden, ja das galera Cluster.
Deswegen überlege Ich gerade, brauch ich das mirror dann eigentlich? Beim den Webservern?
Irgendwie bin ich da gerade verwirrt. Denn bei Managment servern hab ich ja auch kein mirror,weil die Datenbank ja überall gleich ist...
Ach nee warte, jeder server arbeitet ja mit seiner eigenen lokalen Datenbank. Also muss ja mirror rein, weil sonst von der einen lokalen nicht in die andere kopiert wird oder? Aber wenn ein kunde eine Webseite anlget wird der vhost eintrag doch auch auf allen webservernn vollzogen selbt wenn kein mirror drin ist oder?

Nur die Datenbank Benutzer würde er dann auf allen als Datenbankserver angegeben Servern anlegen richtig? Die eigentlich Datenbank warscheinlich auch, ist ja ne eigene DB die ja keine Tabelle in dem lokalen ispconfig, die nur für den Host ist?

Ist es also sinnvoll die mysql tabelle user so wie bis her synchronieseren zu lassen um wenigsten einmalig das root passwort auf allen Maschinen gleich zu haben.
Oder in der galera conf dies skip myisam einzutragen.
Das bedeutet doch das Tabellen mit der engine myisam nicht synchronisert werden oder?

Ich Danke für die Geduld zum lesen.
Nur einiges wie z.b das mirror ist bei einem galera DB ding irgendwie ein Widerspruch in sisch selbst oder auch eben nicht... Da steh ich aufm Schlauch...
Ich hoffe ich konnte ausdrücken was ich möchte... bzw nicht verstehe


Vielen Dank!

Liebe Grüße Bonkersdeluxe
 
Zuletzt bearbeitet:

bonkersdeluxe

New Member
Nachtrag, ich glaub das mit dem Mirror hab ich geschnallt. Ich habe noch keine Webserver, DNS oder Mailserver. Also gibt es bei mir den Menüpunkt Site, Mail nicht, so das ich mir die anschauen kann.
Deshalb hab ich mir gerade mal die online Demo angeschaut. Wenn ich eine Site anlege muss ich einen Server auswählen, das geht nicht über alle. Und wenn ein server als mirror angeben ist, wird der warscheinlich nicht in der liste zur auswahl angezeigt, weil er ja ein mirror ist. Und somit wird der Benutzer dann dort auch eingetragen. Sonst würde er nur auf dem ausgewählten Server erstellt.
Zumindest denke ich mir das so. Wenn Server eins ausfällt repliziert server 2 dann die anderungen die gemacht werden wieder auf Server eins wenn der wieder online ist? Können trotzdem Sites angelegt werden wenn webserver0001 ausgefallen ist? Denn eigentlich sind dafür ja noch server 0002 und 0003...

Denn die Reihenfolge dachte ich an diese
webserver0001
webserver0002 mirror von 0001
webserver 0003 mirror von 0002

wenn diese reihenfolge überhaut sinn macht oder lieber

webserver0001
webserver0002 mirror von 0001
webserver 0003 mirror von 0001

oder wäre das völlig egal?

Vielen Dank!

Liebe Grüße Bonkersdeluxe
 
Zuletzt bearbeitet:

Till

Administrator
Und wenn ein server als mirror angeben ist, wird der warscheinlich nicht in der liste zur auswahl angezeigt, weil er ja ein mirror ist.

Richtig, denn es würde ja keinen Sinn machen wenn der auszuwählen wäre. Im Select Feld findest Du nur die jeweiligen 'master' der gespiegelten server, wobei master hir explizit nicht den ispconfig master meint sondern den server den die slaves spiegeln.

Beim mirroring müssen sich die alle auf einen beziehen, also 2 und 3 sind mirror von 1. Denn wenn 3 der mirror von 2 wäre würde er nichts spiegeln da auf 2 ja nichts in der UI angelegt wurde (in keiner website im Server feld steht ja server 2).

Mirroring ist an sich ganz simpel: Wenn bei server 2 steht dass er mirror von 1 ist, dann fragt er beim interface nach folgendem "Gib mir alle Einträge (Änderungen seit der letzten Anfrage) welche meine server ID (2) haben oder aber die Server ID von 1".
 

bonkersdeluxe

New Member
Hi Till,
Dankeschön für deine Antwort.

Das habe ich nun verstanden. Ergo bedeutet dann, wenn Webserver 0001 offline ist, können keine Sites mehr angelegt werden obwohl die ispconfig Oberfläche ja auf man0001 oder man0002 oder man0003 aktiv ist. Sehe ich das richtig? Oder holt sich Webserver 0002 trotzdem die Änderungen aus der Hauptdatenbank des ISPCONFIG Masters (nicht Webserver 0001) die ja dank galera Cluster auf allen Servern verfügbar ist. Oder versucht Webserver 0002 verzweifelt die Daten aus der lokalen Datenbank von Webserver 0001 zu holen?

Dankeschön
Liebe Grüße Bonkersdeluxe
 

Werbung

Top