Lors du développement, je dois synchroniser les bases de données MySQL. Les deux systèmes ont la même installation, les deux sont FreeBSD5.4 et PHP 4.4.0 installés. La version de MySQL est la 4.1.15, qui sont les dernières versions. .
1. Installez et configurez
deux serveurs. Installez MySQL séparément et installez-les dans le répertoire /usr/local/MySQL (les étapes d'installation sont omises, veuillez vous référer aux documents pertinents. Les IP des deux serveurs sont 192.168.0.1 et 192.168). .0.2 respectivement. Nous utilisons 192.168.0.1 comme base de données maître et 192.168.0.2 comme serveur esclave. Nous utilisons la synchronisation unidirectionnelle, c'est-à-dire que les données du maître sont les données du maître, puis l'esclave va activement vers le maître. synchroniser les données.
Les configurations des deux serveurs sont les mêmes. Copieons les fichiers de configuration clés. Les fichiers de configuration par défaut se trouvent dans le répertoire /usr/local/MySQL/share/MySQL, qui incluent my-large.cnf, my-medium.cnf, my -small.cnf et d'autres écrivains, nous ne faisons que tester, utilisez simplement my-medium.cnf. Une fois MySQL installé, le fichier de configuration par défaut est spécifié dans le répertoire de stockage de la base de données. Nous utilisons 4.1.X, le fichier de configuration doit donc être dans le répertoire /usr/local/MySQL/var, copiez donc le fichier de configuration ici :
cp /usr/local/MySQL/share/MySQL/my-medium.cnf /usr/local/MySQL/var/my.cnf
Les deux serveurs effectuent la même opération de copie du fichier de configuration.
2. Configurez le serveur maître.
Nous devons configurer 192.168.0.1 comme serveur MySQL principal (maître). Nous devons ensuite déterminer quelle base de données nous devons synchroniser et quel utilisateur utiliser pour la synchronisation. l'utilisateur root pour la synchronisation ici, et seule la base de données abc doit être synchronisée.
Ouvrez le fichier de configuration :
vi /usr/local/MySQL/var/my.cnf
Retrouvez ces informations :
# identifiant unique requis entre 1 et 2^32 - 1# est par défaut 1 si l'hôte maître n'est pas défini# mais ne fonctionnera pas comme maître si omisserver-id = 1 //1 est maître, 2 est salve
Ajoutez deux lignes :
sql-bin-update-same //Formulaire de synchronisation binlog-do-db = abc //Base de données à synchroniser
Redémarrez le serveur MySQL à 192.168.0.1 :
/usr/local/MySQL/bin/MySQLadmin arrêt /usr/local/MySQL/bin/MySQLd_safe --user=MySQL &
3. Configurez le serveur esclave.
Notre serveur esclave prend principalement l'initiative de synchroniser les données avec le serveur maître. Nous éditons le fichier de configuration :
vi /usr/local/MySQL/var/my.cnf
Trouvez des informations similaires ci-dessous :
# identifiant unique requis entre 1 et 2^32 - 1# est par défaut 1 si l'hôte maître n'est pas défini# mais ne fonctionnera pas comme maître s'il est omisserver-id = 1
Remplacez l'ID du serveur ci-dessus par 2 et ajoutez quelques informations :
server-id = 2 //Ce MySQL est un serveur esclave master-host = 192.168.0.1 //L'IP du serveur maître master-user = root //L'utilisateur qui se connecte au serveur maître master-password = '' / /Le mot de passe de connexion au serveur maître master -port = 3306 //Port de connexion master-connect-retry = 10 //Nombre de tentatives replique-do-db = abc //Base de données à synchroniser log-slave-updates // Formulaire de synchronisation
Redémarrez le serveur MySQL à 192.168.0.2 :
/usr/local/MySQL/bin/MySQLadmin arrêt /usr/local/MySQL/bin/MySQLd_safe --user=MySQL &
4. Pour tester l'installation,
vérifiez d'abord le journal de l'hôte de l'esclave :
cat /usr/local/MySQL/var/xxxxx_err (xxx est le nom d'hôte)
Vérifiez si la connexion est normale. Si vous voyez un message comme celui-ci, vous avez réussi.
051031 11:42:40 MySQLd démarré051031 11:42:41 InnoDB : Démarré ; numéro de séquence du journal 0 43634/usr/local/MySQL/libexec/MySQLd : prêt pour les connexions.Version : '4.1.15-log' socket : '/ port tmp/MySQL.sock : 3306 Distribution source 051031 11:42:41 [Remarque] Thread SQL esclave initialisé, démarrage de la réplication dans le journal 'FIRST' à la position 0, relais du journal './new4-relay-bin.000001' position : 4051031 11:43:21 [Remarque] Thread d'E/S esclave : connecté au maître '[email protected]:3306' , la réplication a démarré dans le journal 'FIRST' à la position 4
Afficher les informations sur le Maître
/usr/local/MySQL/bin/MySQL -u racine
Afficher l'état du maître :
MySQL> afficher le statut du maître ;
Vérifiez les informations sur le processus MySQL sous Maître :
MySQL> afficher la liste des processus ;
Afficher les informations sur l'esclave :
/usr/local/MySQL/bin/MySQL -u racine
Afficher l'état de l'esclave :
MySQL> afficher le statut de l'esclave ;
Vérifiez les informations du processus MySQL sous esclave :
MySQL> afficher la liste des processus ;
Vous pouvez ensuite créer une structure de table dans la bibliothèque abc du maître et insérer des données, puis vérifier si l'esclave a synchronisé les données, et vous pouvez vérifier si le réglage est réussi.
Enfin, si vous êtes intéressé, vous pouvez étudier la sauvegarde à chaud en double-clic, ou la mise en œuvre de la synchronisation d'un maître et de plusieurs esclaves.