Vous semblez avoir quelques problèmes ici,
TIME OUT
Je commencerais ici car vous pourriez avoir un problème d'autorisations. Je recommanderais d'abord de vous assurer que votre adresse IP locale est autorisée à se connecter à votre base de données mySQL distante et vice versa, selon votre configuration, vous pourrez peut-être configurer cela dans phpMyAdmin, une consule d'hébergement telle que cPanel ou via un accès shell. Je suggérerais de configurer un utilisateur distinct avec un mot de passe fort pour l'accès à distance. Vous devriez avoir une adresse IP statique sur votre connexion Internet locale, si vous n'en avez pas, contactez votre fournisseur d'accès Internet et organisez-en un.
Dans phpMyAdmin, si vous disposez d'un accès suffisant, via l'onglet "privilèges utilisateur" et en définissant l'"hôte" sous "informations de connexion". Je ne recommanderais pas le paramètre "tout hôte" pour des raisons de sécurité évidentes.
Dans cPanel, sous "bases de données", vous devriez trouver "mySQL distant" où vous pouvez définir votre adresse IP.
Enfin en SSH,
- ouvrez le fichier de configuration mySQL avec votre éditeur préféré tel que VI ou Nano, sur Ubuntu il se trouve dans "/etc/mysql/my.conf",
- commentez "bind-address =127.0.0.1" pour qu'il ressemble à "#bind-address =127.0.0.1",
- redémarrer mySQL avec "/etc/init.d/mysql restart",
- connectez-vous à mySQL avec "mysql -u root -p",
- pour un nouvel utilisateur, "CREATE USER 'MY_USERNAME'@'localhost' IDENTIFIED BY 'MY_PASSWORD'"
- suivi de "ACCORDER TOUS LES PRIVILÈGES SUR 'MY_DATABASE'.* TO 'MY_USERNAME'@'12.34.56.78' IDENTIFIED BY 'MY_PASSWORD' ;" - Remarque, remplacez l'IP "12.34.56.78" par votre adresse IP réelle.
- Vous devriez maintenant avoir une confirmation dans le sens de la requête ok.
- Enfin, quittez mysql avec la commande "quit" et redémarrez avec "/etc/init.d/mysql restart"
REMARQUE :Je recommanderais de configurer les deux installations mySQL pour l'accès à distance.
Je recommanderais maintenant de tester cela en exécutant un petit script sur votre ordinateur local, quelque chose comme
<?php
$host = 'mysql_remoteip';
$user = 'mysql_username';
$pass = 'mysql_password';
$db = 'mysql_database';
$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
mysql_select_db($db) or die("OOPS! I can not connect to the remote mySQL database, I was given the following error: ".mysql_error());
$sql = "SELECT column FROM table WHERE column='my_var'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
if(empty($row['column']) {
echo "WHOOPS! I could not get information from the mySQL, was there data for me to retrieve in the database?";
} else {
echo "The data I retrieved is:<br />"
echo $row['column'];
}
}
?>
REMARQUE :vous devez avoir des données dans la base de données pour que le script fonctionne correctement, un résultat sans données affichera un message indiquant que le script n'a pas pu récupérer les données, cela établira toujours si vous avez maintenant accès à la base de données ou non, mais ne le fait pas 't assurer qu'il est 100% opérationnel.
MAITRE OU ESCLAVE
Oui, c'est possible, à condition d'avoir un accès suffisant
Dans phpMyAdmin :
- sous l'onglet "réplication", vous trouverez un assistant qui vous fournira le code pour le définir dans le fichier de configuration mySQL (sur Ubuntu, il se trouve dans "/etc/mysql/my.conf"),
- cliquez sur le lien pour configurer le serveur maître
- saisir les informations dans le formulaire, copier le code
- allez dans votre fichier de configuration (emplacement ci-dessus) et ajoutez le code fourni par phpMyAdmin
- une fois que vous avez mis à jour le fichier de configuration, redémarrez mySQL et cliquez sur le bouton go dans phpMyAdmin, cela confirmera les modifications
- Maintenant, sous l'onglet "réplication", cliquez sur le lien pour configurer le serveur esclave
- assurez-vous que vous avez un identifiant de serveur unique dans votre fichier de configuration, sinon ajoutez la ligne fournie par phpMyAdmin dans la section [mysqld] du fichier
- Complétez les informations requises et cliquez sur OK
Cela devrait configurer votre réplication.
SYNCHRONISER
Si tout le reste a échoué, dans phpMyAdmin, allez dans l'onglet "synchroniser", entrez les informations et c'est parti, il vous suffit de confirmer la synchronisation sur la page suivante et 2 secondes plus tard, vous avez terminé, c'est aussi simple que cela.
Pour les serveurs de production, j'ai personnellement une configuration de réplication maître/esclave, mais pour le développement, je synchronise lorsque j'ai besoin de données "en direct" pour répliquer une erreur ou un problème, car je n'ai besoin de synchroniser qu'une fois tous les 6 à 12 mois. Si j'ai besoin de données en direct localement, je configurerais la réplication maître/esclave