Question Comment configurer Mysql Cluster?


J'essaie de configurer mysql-cluster-gpl-7.1.17-linux-i686-glibc23.tar.gz sur ubuntu 10.04 serveur pour les 3 dernières semaines et pas encore réussi.

Les liens que j'ai suivis sont:

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/

Toutes les configurations dans les liens ci-dessus sont presque les mêmes avec quelques légères modifications et je viens d'essayer toutes les œuvres, mais aucune.

J'ai déjà fait un post dans défaut de serveur mais je suis toujours incapable de le faire fonctionner.

Je reviens toujours ici si rien ne fonctionne après plusieurs essais et maintenant je le suis.

Aussi je ne comprends pas si mysql-server ou mysql-client doivent être installés avec mysql-cluster autre mysql-cluster seul suffit à courir mysqld sur les noeuds SQL. Dans mon cas, la configuration est 3 nodes=(data1+sql1 + data2+sql2 + mgmt node).

Erreurs fréquentes:

/etc/init.d/mysql.server start

Sortie:

Starting MySQL
 * Couldn't find MySQL manager (/usr/bin/mysqlmanager) or server (/usr/bin/mysqld_safe)

J'ai même essayé de copier /usr/local/mysql/bin/* à /usr/bin mais toujours pas utile comme il le disait . * Manager of pid-file quit without updating file. en essayant de commencer!

En essayant de démarrer le démon mysql sur le noeud data / sql

cd / usr / local / mysql

./bin/mysqld_safe --user = mysql --defaults-file = / etc / my.cnf &

Sortie:

[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

Quelqu'un prend-il et aide-moi s'il te plait? Quelqu'un peut-il clarifier s'il y a un problème avec Ubuntu ou avec la configuration de cluster? Je dois implémenter cela sur les serveurs cloud une fois que j'ai réussi.

Je vous remercie!

Mettre à jour:1

Maintenant, sur les nœuds SQL / Data que j'ai déjà supprimés mysql-server et mysql-client que j'installe généralement comme paquet de base de toute nouvelle installation. Je les ai supprimés en exécutant la commande suivante et sur les deux nœuds seulement mysql-cluster est disponible que je n'ai pas pu configurer:

apt-get supprimer mysql-client mysql-client-5.1 mysql-client-core-5.1   mysql-common mysql-server mysql-server-5.1 mysql-server-core-5.1

Mettre à jour: 2

J'ai corrigé les problèmes que j'avais. Maintenant, j'ai les choses suivantes à faire.

  1. Quelle est la meilleure méthode pour ajouter / supprimer mgmt, SQL/DATA les nœuds étant en ligne?

    MODIFIER: J'ai essayé mysql docs pour ajouter des nœuds en ligne mais confus et ne fonctionnait pas à moins que j'arrête tous les nœuds et que je supprime les journaux sous /var/lib/mysql-cluster sur tous les nœuds.

  2. Quelles configurations supplémentaires dois-je inclure dans mes my.conf fichier pour optimiser les performances comme DataMemory et IndexMemory, si quelqu'un utilise pour la production, peut le recommander ou le coller ici s'il vous plaît?

Mettre à jour: 3

  1. Comment convertir tous les moteurs de table de la base de données en NDB qui ont également des clés étrangères?

    MODIFIER: J'ai trouvé un script pour convertir tous les moteurs de table mais toutes les tables de ma base de données ne sont pas converties quant à l'erreur: ERREUR 1217 (23000) à la ligne 11: impossible de supprimer ou de mettre à jour une ligne parente: une contrainte de clé étrangère échoue

  2. Existe-t-il un moyen de posséder à la fois les fonctionnalités de NDB et InnoDB avec une réplication en cluster et multi-maître sans risque (temps d’arrêt)?


7
2017-12-08 11:51


origine


Suppression de MySQL Cluster car elle ne convient pas parfaitement aux applications Web (lente joins, pas de soutien pour Foreign keys...). Merci! - user3215


Réponses:


Oh, après plusieurs tentatives, je l'ai fait fonctionner moi-même et ça a pris du temps maintenant. Les liens sont de très bons tutoriels et je pourrais résoudre les problèmes que j'avais de cette façon.

De plus, je ne comprends pas si mysql-server ou mysql-client doivent être installés avec mysql-cluster sinon mysql-cluster seul est suffisant pour exécuter mysqld sur des nœuds SQL.

UNE: Je ne suis pas sûr si mysql-cluster travaille le long mysql-server et mysql-client qui sont déjà installés à partir de apt mais je suis sûr que ceux-ci ou tout autre paquet supplémentaire ne sont PAS requis pour mysql-cluster sur Ubuntu, car il contient tous les paquets. Donc je peux courir mysqld à partir du package extrait du cluster et rien d’autre pour que cela s’installe en plus pour les nœuds SQL.

./bin/mysqld_safe --user = mysql --defaults-file = / etc / my.cnf &

UNE: Pas besoin de courir mysqld manuellement et à la place peut utiliser /etc/init.d/mysql.server start copier à partir de /usr/local/mysql/support-files/mysql.serverpour démarrer le noeud mysqld / SQL.

Lancer MySQL    * Impossible de trouver le gestionnaire MySQL (/ usr / bin / mysqlmanager) ou le serveur (/ usr / bin / mysqld_safe)

UNE: Le ci-dessus était l'erreur rencontrée lors de la tentative de démarrage mysql.server et c'était parce que j'avais mysql-server et mysql-client déjà installé. Celles-ci doivent être complètement supprimées (je ne suis pas sûr que le cluster puisse fonctionner avec elles avec succès) et moi. Ceux-ci n'ont pas été complètement supprimés (probablement je dois utiliser apt --purge remove). Vérifier avec dpkg --get-selections | grep mysql, si tu trouves deinstall alors ceux-ci ne sont pas complètement désinstallés, ce qui devrait être, sinon il faudra faire face à l'erreur ci-dessus. L'exécution de la commande ci-dessous les a complètement supprimés et j'ai pu démarrer mysql.server sans erreur.

aptitude purge $(dpkg --get-selections | grep deinstall | sed s/deinstall//) #To completely remove all deinstall package
pkill -9 mysqld
/etc/init.d/mysql.server

............ * Gestionnaire de fichier pid quitter sans mettre à jour le fichier.

UNE: J'ai fait face à l'erreur ci-dessus plusieurs fois dans mes tests en essayant de démarrer mysql.server. Je pourrais éviter cela en accordant simplement la permission sur data à l'utilisateur mysql comme chown -R mysql:mysql /usr/local/mysql/data, cette erreur était parce que je cherchais à extraire mysql-cluster un certain nombre de fois et donc l'erreur en tant qu'utilisateur mysql Impossible de créer un fichier PID sous le répertoire de données pour aucune autorisation et erreur sous le journal /var/lib/mysql-cluster sur sql / data node m'a aidé à retrouver cette trace.

Devrait être très spécifique en assignant à / usr / local / mysql / data, si tu fais juste chown -R mysql:mysql /usr/local/mysql et tais-toi, ça ne marchera pas et la même erreur est lancée!

Après avoir accordé la permission, vérifiez que mysqld fonctionne et fonctionne en émettant /usr/local/mysql/bin/mysql -uroot -p. Même après avoir entré le mot de passe, vous ne pouvez pas vous connecter et génère une erreur, alors le mot de passe root de mysql n'est pas défini ou vous avez oublié. Utilisez la commande ci-dessous pour réinitialiser le mot de passe root de mysql, puis essayez à nouveau de vous connecter:

/usr/local/mysql/bin/mysqladmin -uroot password your-new-password-here

Ni je suis satisfait de la réponse, ni je suis prêt à accepter et à me récompenser comme j'ai beaucoup plus à faire dans ce regroupement. Je suis disposé à mettre à jour ma question avec plus de questions et à attendre pour attribuer des points à d'autres qui vont répondre. QUESTION MISE À JOUR!

Je vous remercie!

Mettre à jour

Nous avons pensé à utiliser MySQL Cluster pour les serveurs Web de production où apache-tomcat desservait certaines pages statiques et jsp mais joins, pas de soutien pour foreign keys et ainsi de suite ... les problèmes cruciaux dans notre environnement et fonctionnant bien avec le moteur Innodb que le NDB, je finis par ne pas utiliser le cluster mysql et revenir à la réplication même si elle a des problèmes de synchronisation. Je vous remercie!


6
2017-12-11 15:46



Ce n'est pas très difficile, vous pouvez facilement trouver Google ou dans la documentation mysql ou utiliser directement utiliser Mysql Workbench ou Mysql Administrator Outils graphiques si vous l'avez installé. Du terminal, vous pouvez essayer CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'mypass'; pour créer des utilisateurs et select * from mysql.user; pour lister les utilisateurs. Assurez-vous de les exécuter dans l'invite du shell mysql dans ce cas /usr/local/mysql/bin/mysql -uroot -p se connecter à mysql - user3215
Au lieu de supprimer mysql-client, je ne l'ai pas installé du tout. Pour le moment, il semble que ma configuration fonctionne correctement. - metdos
Comme mysql-cluster utilise le moteur NDB, avez-vous déjà pensé à la possibilité de répliquer / synchroniser des bases de données de deux moteurs différents (NDO et Innodb)? - user3215
La documentation dit qu'il est possible "Réplication de tables NDB vers des tables non NDB. Il est possible de répliquer des tables NDB depuis un cluster MySQL agissant comme maître vers des tables utilisant d'autres moteurs de stockage MySQL tels qu'InnoDB ou MyISAM sur un serveur mysqld esclave. des différences entre la version de mysqld fournie avec MySQL Cluster et celle fournie avec MySQL Server 5.1, le serveur esclave doit également utiliser un binaire mysqld de la distribution MySQL Cluster. "ref: dev.mysql.com/doc/refman/5.1/en/mysql-cluster-replication.html Mais je n'ai pas essayé. - metdos
Oh, merci Metdos, je pensais juste si c'était possible et vous en avez montré la trace. Je vais essayer ce lien. Merci! - user3215