Ich versuche in den letzten 3 Wochen mysql-cluster-gpl-7.1.17-linux-i686-glibc23.tar.gz
auf dem ubuntu 10.04
Server einzurichten und bin noch nicht erfolgreich.
Die Links, denen ich folgte, sind:
http://stepbysteparticles.com/index.php?option=com_content&view=article&id=48&Itemid=54
http://cyrenity.wordpress.com/2010/08/12/howto-setup-mysql-cluster-beginners-tutorial/
http://tech.jocke.no/2011/03/13/mysql-cluster-how-to-with-load-balancing-failover/
http://www.lod.com/whitepapers/mysql-cluster-howto.html
http://blog.rimuhosting.com/2011/07/06/building-database-clusters-with-mysql/
Alle Konfigurationen in den obigen Links sind mit einigen geringfügigen Änderungen fast gleich, und ich habe nur alle ausprobiert, wenn überhaupt, aber keine.
Ich habe bereits einen Beitrag in Serverfault verfasst, kann ihn aber immer noch nicht zum Laufen bringen.
Ich komme immer wieder hierher, wenn nach vielen Versuchen nichts klappt und jetzt bin ich es.
Außerdem verstehe ich nicht, ob die Installation zusammen mit else allein für die Ausführung auf SQL-Knoten ausreicht mysql-server
oder mysql-client
erforderlich ist . In meinem Fall ist das Setup .mysql-cluster
mysql-cluster
mysqld
3 nodes=(data1+sql1 + data2+sql2 + mgmt node)
Häufige Fehler :
/etc/init.d/mysql.server start
Ausgabe:
Starting MySQL
* Couldn't find MySQL manager (/usr/bin/mysqlmanager) or server (/usr/bin/mysqld_safe)
Ich habe sogar versucht zu kopieren /usr/local/mysql/bin/*
, /usr/bin
aber es hat immer noch keinen Sinn, da es . * Manager of pid-file quit without updating file.
beim Versuch zu starten aufschlussreich war!
Beim Versuch, den MySQL-Daemon auf dem Daten- / SQL-Knoten zu starten
cd / usr / local / mysql
./bin/mysqld_safe --user = mysql --defaults-file = / etc / my.cnf &
Ausgabe:
[1] 2338
root@web2:/usr/local/mysql# 111208 15:53:47 mysqld_safe Logging to syslog.
111208 15:53:47 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
111208 15:53:47 mysqld_safe mysqld from pid file /var/lib/mysql/web2.pid ended
[1]+ Done ./bin/mysqld_safe --user=mysql --defaults-file=/etc/my.cnf
Jemand nimmt auf und hilft mir bitte hier?. Hat jemand geklärt, ob es ein Problem mit Ubuntu oder mit der Cluster-Konfiguration gibt?. Ich muss dies auf Cloud-Servern implementieren, sobald ich erfolgreich bin.
Vielen Dank!
Update : 1
Jetzt auf SQL / Data-Knoten, die ich bereits entfernt hatte mysql-server
und mysql-client
die ich im Allgemeinen als Basispaket für jede Neuinstallation installiere. Ich habe sie durch Ausführen des folgenden Befehls entfernt und es ist nur auf beiden Knoten mysql-cluster
verfügbar, die ich nicht einrichten konnte:
apt-get entfernen mysql-client mysql-client-5.1 mysql-client-core-5.1 mysql-common mysql-server mysql-server-5.1 mysql-server-core-5.1
Update : 2
Ich habe die Probleme behoben, die ich hatte. Jetzt muss ich noch Folgendes tun.
Was ist die beste Methode zum Hinzufügen / Entfernen
mgmt
,SQL/DATA
wenn Knoten online sind?BEARBEITEN : Ich habe MySQL- Dokumente zum Hinzufügen von Knoten online ausprobiert, war aber verwirrt und funktionierte nur, wenn ich alle Knoten heruntergefahren und die Protokolle unter
/var/lib/mysql-cluster
allen Knoten entfernt habe.Welche zusätzlichen Konfigurationen sollte ich in meine
my.conf
Datei aufnehmen, um eine optimale Leistungsoptimierung zu erzielen,DataMemory
undIndexMemory
wenn jemand sie für die Produktion verwendet, kann er sie hier empfehlen oder einfügen?
Update : 3
Wie konvertiere ich alle Tabellen-Engines der Datenbank in NDB, die auch Fremdschlüssel haben?
BEARBEITEN : Ich habe ein Skript zum Konvertieren aller Tabellenmodule gefunden, aber alle Tabellen meiner Datenbank werden nicht wie für den Fehler konvertiert: FEHLER 1217 (23000) in Zeile 11: Eine übergeordnete Zeile kann nicht gelöscht oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl
Gibt es eine Möglichkeit, die Funktionen von NDB und InnoDB mit Cluster- und Multi-Master-Replikation ohne Risiko (Ausfallzeit) zu nutzen?
joins
, keine Unterstützung fürForeign keys
...). Vielen Dank!Antworten:
Oh .., nach mehreren Versuchen habe ich es selbst zum Laufen gebracht und es hat bis jetzt gedauert. Die Links sind sehr nette Tutorials und ich konnte die Probleme beheben, die ich auf diese Weise hatte.
A : Ich bin nicht sicher, ob es
mysql-cluster
funktioniertmysql-server
undmysql-client
welche bereits installiert sind,apt
aber ich bin sicher, dass diese oder ein zusätzliches Paket für mysql-cluster unter Ubuntu NICHT erforderlich sind, da es selbst alle Pakete enthält. Ich kann alsomysqld
von einem Cluster-extrahierten Paket ausführen , und es ist nichts erforderlich, um dies zusätzlich für SQL-Knoten zu installieren.A : Sie müssen nicht
mysqld
manuell ausgeführt werden und können stattdessen das/etc/init.d/mysql.server start
Kopieren von verwenden/usr/local/mysql/support-files/mysql.server
, um den mysqld / SQL-Knoten zu starten.A : Die oben war der Fehler aufgetreten beim Versuch zu starten
mysql.server
und das war , weil ich hattemysql-server
undmysql-client
bereits installiert. Diese sollten vollständig entfernt werden (ich bin nicht sicher, ob Cluster zusammen mit ihnen erfolgreich ausgeführt werden kann), und ich habe es getan. Diese wurden nicht vollständig entfernt (wahrscheinlich muss ich verwendenapt --purge remove
). Überprüfen Sie mitdpkg --get-selections | grep mysql
, wenn Sie feststellen, dassdeinstall
diese nicht vollständig deinstalliert sind, was sein sollte, sonst muss man oben Fehler sehen. Durch Ausführen des folgenden Befehls wurden sie vollständig entfernt und ich konnte mysql.server ohne Fehler starten.A : Beim Testen habe ich den obigen Fehler viele Male festgestellt
mysql.server
. Ich konnte dies vermeiden, indem ichdata
dem MySQL-Benutzer einfach die Berechtigung erteilte.chown -R mysql:mysql /usr/local/mysql/data
Dieser Fehler war darauf zurückzuführen, dass ich mehrmals versucht habe, den MySQL-Cluster neu zu extrahieren, und daher der Fehler, da der Benutzermysql
keine PID-Datei im Datenverzeichnis ohne Berechtigung und Fehlerprotokoll erstellen konnte unter/var/lib/mysql-cluster
on sql / data node hat mir geholfen, dies zu verfolgen.Sollte bei der Zuweisung zu / usr / local / mysql / data sehr spezifisch sein. Wenn Sie dies nur tun
chown -R mysql:mysql /usr/local/mysql
und ruhig bleiben, funktioniert es nicht und der gleiche Fehler wird ausgelöst!Überprüfen Sie nach Erteilung der Berechtigung, ob mysqld funktioniert und ausgeführt wird
/usr/local/mysql/bin/mysql -uroot -p
. Selbst nach Eingabe des Passworts können Sie keine Verbindung herstellen und werfen einen Fehler aus. Dann ist das MySQL-Root-Passwort nicht festgelegt oder Sie haben es vergessen. Verwenden Sie den folgenden Befehl, um das MySQL-Root-Passwort zurückzusetzen, und versuchen Sie dann erneut, eine Verbindung herzustellen:Weder bin ich mit der Antwort zufrieden, noch bin ich bereit, mich selbst zu akzeptieren und zu prämieren, da ich in diesem Clustering noch viel mehr zu tun habe. Ich bin bereit, meine Frage mit weiteren Fragen zu aktualisieren und warte darauf, Punkte an andere zu vergeben, die antworten werden. AKTUALISIERTE FRAGE!
Vielen Dank!
Aktualisieren
Wir haben darüber nachgedacht, MySQL Cluster für Produktionswebserver zu verwenden, auf denen Apache-Tomcat einige statische und JSP-Seiten bereitstellt, aber aufgrund der langsamen
joins
, nicht unterstützten Unterstützungforeign keys
usw. Ich beende die Verwendung des MySQL-Clusters und schaue wieder auf die Replikation zurück, obwohl es Synchronisierungsprobleme gibt. Vielen Dank!quelle
Mysql Workbench
oderMysql Administrator
GUI-Tools zu verwenden, wenn Sie es installiert haben. Vom Terminal aus können Sie versuchenCREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass';
, Benutzer zu erstellen undselect * from mysql.user;
Benutzer aufzulisten. Stellen Sie sicher , dass sie in der mysql - Shell - Prompt in diesem Fall ausführen ,/usr/local/mysql/bin/mysql -uroot -p
um sich auf mysql