Domanda

Ho bisogno di connettersi a un database mysql remota in PHP.

In particolare ho questo come una costante:     define ( "server_database", "localhost");     ...

$db = @mysql_connect(DB_SERVER, DB_USER, DB_PASS);

voglio copiare il sito alla mia macchina locale, ma ancora la connessione al database principale.

Come posso fare? se é cosi, come? Tutto quello che ho è l'accesso FTP.

È stato utile?

Soluzione

È necessario l'IP / URL del DB e mettere che invece di localhost.
È necessario assicurarsi che il DB di configurazione consente le connessioni remote / fuori della rete locale.
Una volta a ottenere l'IP del DB (dovrebbe essere data dal team di supporto, se viene supportato), si sa.

Se tutto quello che dovete fare è copiare i dati e costruire localmente sulla propria macchina, in modo da non distruggere i dati in tempo reale, utilizzare la scheda di esportazione in phpMyAdmin. Presumo che non si dispone di troppi dati.
PHPmyadmin-> selezionare il DB (dal frame di sinistra) -> premere il TAB esportazione (in alto, a destra telaio)
. Dovrebbe essere chiaro da lì.
È possibile esportare come SQL ed eseguire questo SQL sul computer locale.

Altri suggerimenti

Direi che il server di database rifiuta le connessioni remote. Se si dispone di cPanel c'è una sezione chiamata qualcosa come "Database Access remoto" in cui è possibile attivare a determinati intervalli di indirizzi IP.

Vi suggerisco di esportare il database in questione, e importare localmente. In questo modo, non distruggerà i dati in tempo reale se sbagli.

Molti, se non la maggior parte, i fornitori di hosting forniscono anche un'interfaccia DB come phpMyAdmin. È possibile esportare il database da lì.

1 gnud. Si consiglia di non utilizzare il database di produzione per il lavoro di sviluppo, anche se si potrebbero configurarlo per ascoltare per l'accesso esterno su un'interfaccia internet pubblico (*). Uno slittamento del mouse e il gioco è scarabocchiando su importanti dati in tempo reale. Invece si dovrebbe lavorare su un server di sviluppo autonomo della propria, da cui si può spingere le modifiche al codice per il server di vivere quando si stanno lavorando e testato.

(*: Che è di per sé una pessima idea:. Se le password sono troppo deboli o si sta eseguendo una vecchia versione di MySQL con exploit disponibili che si sta per ottenere hacked da sonde automatiche molto rapidamente)

che normalmente esportare il database dalla shell con il comando mysqldump dbname > dbdump.sql, e importarlo sul server locale per tubazioni in mysql dbname < dbdump.sql. Ci potrebbe essere anche un'interfaccia di amministrazione web MySQL installato sul server è possibile utilizzare. Ma se tutto quello che hai è FTP, non avete davvero stato dato gli strumenti necessari per fare il lavoro di sviluppo. Vedere se è possibile ottenere un database vuoto o fittizio per testare il sito con.

(Come se non bastasse, FTP è un brutto affare ... proprio in questo secolo si dovrebbe usare SFTP.)

L'approccio più semplice è quello di avere DATABASE_SERVER essere definito come database (o qualcosa di altrettanto significativo) e mettere una voce nel file hosts. Sul computer locale questo può indicare l'indirizzo remoto, sul server questo punterà a 127.0.0.1.

define('DATABASE_SERVER', database);

Il file di Windows vostri siti è:

c:\windows\system32\drivers\etc\hosts

con:

database <remote_ip>

Linux:

/etc/hosts

con:

database 127.0.0.1

Nota a margine: è il telecomando DB una produzione DB? Se è così non si dovrebbe davvero utilizzare il DB remoto per il lavoro di sviluppo, a meno che non si sta utilizzando un DB dev separato -. Anche allora non vorrei correre il rischio di query dev canaglia mangiare le risorse DB remoto

Aggiornamento:. Doh, perse sei limitato a accesso FTP

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top