2010-10-20 4 views
3

J'utilise PHP et Mysql pour développer une application. nous avons deux copies de la base de données, une au serveur local (c'est-à-dire notre extrémité) et une au serveur Web. Nous voulons synchroniser la base de données afin que toute modification apportée dans la base de données locale reflète également la base de données du serveur Web. est-ce possible?? Actuellement, nous utilisons des scripts PHP pour le faire .. ce qui prend trop de temps et aussi peu fiable. Que peut-on faire pour que MySQL lance en interne toute la mise à jour et la logique ?? REMARQUE: - Notre serveur local fonctionne sous Windows, et le serveur web est basé sur Unix, et nous n'utilisons pas la ligne de commande pour accéder aux deux machines, nous utilisons l'application PHP pour mettre à jour et maintenir les données (par ex. pour ajouter de nouvelles données ou mettre à jour des données)pour synchroniser la base de données locale et la base de données du serveur Web dans MySQL

+0

S'il vous plaît ajouter des détails ... quelle plate-forme/OS ... si vous avez commande un accès en ligne aux deux machines .... –

+0

@Pekka y at-il problème si nous utilisons des scripts PHP que en utilisant la réplication MySQL ?? –

Répondre

2

MySQL Replications peut être ce que vous cherchez, mais je ne recommande pas de synchroniser les bases de données de développement et de production. Cela peut vous causer des problèmes lorsque vous poursuivez le développement après la publication de la page Web. L'approche commune consiste à avoir un serveur pour le développement (données fictives, non publiques), tests (données réelles, non publiques) et production (données réelles, public).

0

éditer: Je pensais que le serveur web était aussi un maître.

Dans ce cas, regardez le fonctionnement de replication in MySQL; il copiera simplement les données poussées vers la base de données locale vers le serveur Web.

+0

Je pensais qu'il était maître-esclave comme maître local et serveur web étant esclave .. en fait pour la première fois je travaille sur un système comme celui-ci –

-1

Pour synchroniser une base de données locale avec une base de données de serveur Web dans MySQL, vous pouvez utiliser cette fonctionnalité via la réplication. Ici, j'ai quelques commandes SQL pour effectuer la réplication

1). Ici, vous avez besoin de deux PC si vous le faites hors ligne à des fins de test et le premier PC sera votre maître et l'autre agira en tant que SLAVE.

2). Vérifiez l'adresse IP de vos machines.

3). Je m'y prends sur Localhost avec deux ces PC suivants

machine-1: - 192.168.1.20

machine-2: - 192.168.1.21

puis vous ouvrez Mysql et commencez à taper ces commandes sur les deux machines comme indiqué ci-

---------------- Commands for SERVER-1 ------------------ 
IP-Address e.g. = 192.168.1.20 
--------------------------------------------------------- 

CREATE USER 'server1'@'%' IDENTIFIED BY '12345'; 

GRANT REPLICATION SLAVE ON *.* TO 'server1'@'%' IDENTIFIED BY '12345'; 

FLUSH TABLES WITH READ LOCK; 

SHOW MASTER STATUS; 

UNLOCK TABLES; 


---------------- Commands for SERVER-2 ----------------- 
IP-Address e.g. = 192.168.1.21 
-------------------------------------------------------- 

STOP SLAVE; 

RESET SLAVE; 

CHANGE MASTER TO 
MASTER_HOST = '192.168.1.20', 
MASTER_USER = 'server1', 
MASTER_PASSWORD = '12345', 
MASTER_PORT = 3306, 
MASTER_LOG_FILE = 'Type_your_log_file_name', 
MASTER_LOG_POS = TYPE_YOUR_LOG_POSITION_HERE, 
MASTER_CONNECT_RETRY = 10, 

START SLAVE; 

SHOW SLAVE STATUS \G; 
+0

Alors que ce lien peut répondre à la question, il est préférable d'inclure les parties essentielles de la répondez ici et fournissez le lien pour référence. Les réponses à lien uniquement peuvent devenir invalides si la page liée change. –

+0

Merci pour votre suggestion @ NarendraSisodia. Maintenant, vérifiez-le, j'ai mis à jour toute la réponse est-il bien maintenant ?? –

Questions connexes