Du verkar ha ett par problem här,
TIME OUT
Jag skulle börja här eftersom du kan ha ett behörighetsproblem. Jag skulle rekommendera att du först försäkrar dig om att din lokala IP-adress har behörighet att ansluta till din fjärranslutna mySQL-databas och vice versa, beroende på din inställning kanske du kan konfigurera detta i phpMyAdmin, en värdkonsul som cPanel eller via skalåtkomst. Jag skulle föreslå att du skapar en separat användare med ett starkt lösenord för fjärråtkomst. Du bör ha en statisk IP-adress på din lokala internetanslutning, om du inte har en kontakta din Internetleverantör och ordna en.
I phpMyAdmin, om du har tillräcklig tillgång, via fliken "användarprivilegier" och ställ in "värden" under "inloggningsinformation". Jag skulle inte rekommendera inställningen "alla värdar" av uppenbara säkerhetsskäl.
I cPanel ska du under "databaser" hitta "remote mySQL" där du kan ställa in din IP-adress.
Äntligen i SSH,
- öppna mySQL-konfigurationsfilen med din favoritredigerare som VI eller Nano, på Ubuntu finns den på "/etc/mysql/my.conf",
- kommentera ut "bind-adress =127.0.0.1" så att det ser ut som "#bind-adress =127.0.0.1",
- starta om mySQL med "/etc/init.d/mysql restart",
- logga in på mySQL med "mysql -u root -p",
- för en ny användare, "SKAPA ANVÄNDARE 'MY_USERNAME'@'localhost' IDENTIFIERAD AV 'MY_PASSWORD'"
- följt av "BEHANDLA ALLA PRIVILEGIER PÅ 'MY_DATABASE'.* TILL 'MY_USERNAME'@'12.34.56.78' IDENTIFIERAD AV 'MY_PASSWORD';" - notera, ersätt IP:n "12.34.56.78" med din faktiska IP-adress.
- Du bör nu ha bekräftelse i linje med frågan ok.
- Avsluta slutligen mysql med kommandot "quit" och starta om med "/etc/init.d/mysql restart"
OBS:Jag skulle rekommendera att ställa in båda mySQL-installationerna för fjärråtkomst.
Jag skulle nu rekommendera att testa detta genom att köra ett litet skript på din lokala dator, ungefär som
<?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'];
}
}
?>
OBS:du bör ha data i databasen för att skriptet ska fungera korrekt, ett resultat utan data kommer att visa ett meddelande om att skriptet inte kunde hämta data, detta kommer fortfarande att fastställa om du nu har tillgång till databasen eller inte men inte inte säker på att det är 100% funktionellt.
MÄSTARE ELLER SLAVA
Ja, det är möjligt, förutsatt att du har tillräcklig åtkomst
I phpMyAdmin:
- under fliken "replikering" hittar du en guide som ger dig koden för att ställa in detta i mySQL-konfigurationsfilen (på Ubuntu finns den på "/etc/mysql/my.conf"),
- klicka på länken för att konfigurera huvudservern
- ange informationen i formuläret, kopiera koden
- gå till din konfigurationsfil (platsen ovan) och lägg till koden från phpMyAdmin
- när du har uppdaterat konfigurationsfilen starta om mySQL och klicka på go-knappen i phpMyAdmin, detta kommer att bekräfta ändringarna
- Nu igen under fliken "replikering", klicka på länken för att konfigurera slavservern
- se till att du har ett unikt server-id i din konfigurationsfil, om inte lägg till raden som tillhandahålls av phpMyAdmin i [mysqld]-delen av filen
- Fyll i den nödvändiga informationen och klicka på Gå
Detta bör ställa in din replikering.
SYNKRONISERA
Om allt annat har misslyckats, gå till fliken "synkronisera" i phpMyAdmin, ange informationen och iväg, du behöver bara bekräfta synkroniseringen på nästa sida och 2 sekunder senare är du klar, så enkelt är det.
För produktionsservrar har jag personligen en master/slave replikering set-up men för utveckling synkar jag när jag behöver "live" data för att replikera ett fel eller problem, detta beror på att jag bara behöver synka en gång var 6-12 månad. Om jag behöver levande data lokalt så skulle jag ställa in master/slav-replikeringen