Question

Je dois vous connecter à une base de données MySQL à distance en PHP.

J'ai précisément cela comme une constante:     définir ( "serveur_base_de_données", "localhost");     ...

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

Je veux copier le site à ma machine locale, mais toujours se connecter à la base de données principale.

Puis-je faire? si c'est le cas, comment? Tout ce que j'ai accès FTP est.

Était-ce utile?

La solution

Vous avez besoin de l'IP / URL de la DB et mettez au lieu de localhost.
Vous devez vous assurer que la configuration DB permet des connexions à distance / en dehors du réseau local.
Une fois que vous obtenez l'adresse IP du DB (devrait être donnée par l'équipe de soutien, si elle est prise en charge), vous saurez.

Si tout ce que vous devez faire est de copier les données et construire localement sur votre machine, vous ne détruisez pas les données en direct, utilisez l'onglet d'exportation dans phpMyAdmin. Je suppose que vous n'avez pas trop de données.
PHPmyadmin-> sélectionnez le DB (à partir du cadre gauche) -> appuyez sur l'exportation TAB (en haut, cadre de droite)
. Devrait être clair à partir de là.
Vous pouvez l'exporter comme SQL et exécuter ce SQL sur votre machine locale.

Autres conseils

Je suppose que votre serveur de base de données refuse les connexions à distance. Si vous avez cPanel il y a une section appelée quelque chose comme « base de données Access à distance » où vous pouvez les activer à certaines plages d'adresses IP.

Je vous suggère d'exporter la base de données en question, et d'importer localement. De cette façon, vous ne serez pas détruire les données en direct si vous gâcher.

Beaucoup, sinon la plupart, les fournisseurs d'hébergement offrent également une interface de DB comme phpMyAdmin. Vous pouvez exporter la base de données à partir de là.

+1 GNUD. Vous ne devez pas utiliser la base de données de production pour le travail de développement, même si vous peut configurer pour écouter un accès externe sur une interface Internet (*). Un glissement de la souris et vous êtes griffonner sur d'importantes données en temps réel. Au lieu de cela, vous devez travailler sur un serveur de développement autonome de votre propre, à partir de laquelle vous pouvez pousser les modifications de code au serveur en direct lorsque vous ils travaillent et testés.

(*: Ce qui est en soi une très mauvaise idée. Si les mots de passe sont trop faibles ou que vous utilisez une ancienne version de MySQL avec les exploits disponibles que vous allez obtenir piraté par des sondes automatiques très rapidement)

Vous auriez normalement exporter la base de données à partir du shell en utilisant la commande mysqldump dbname > dbdump.sql et l'importer sur votre serveur local en canalisant dans mysql dbname < dbdump.sql. Il pourrait aussi être une interface web d'administration MySQL installé sur le serveur que vous pouvez utiliser. Mais si tout ce que vous avez est FTP, vous n'avez pas vraiment reçu les outils dont vous avez besoin pour faire un travail de développement. Voyez si vous pouvez obtenir une base de données vide ou factice pour tester le site avec.

(De plus, FTP est une sale affaire ... vraiment dans ce siècle, vous devriez utiliser SFTP.)

La plus simple approche est d'avoir DATABASE_SERVER être défini comme database (ou quelque chose d'aussi significatif) et mettre une entrée dans votre fichier hosts. Sur votre machine locale, cela peut pointer vers l'adresse distante, sur le serveur pointera à 127.0.0.1.

define('DATABASE_SERVER', database);

Le fichier Windows de votre site est:

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

avec:

database <remote_ip>

Linux:

/etc/hosts

avec:

database 127.0.0.1

Side note: est votre télécommande DB une production DB? Si oui, vous ne devriez pas vraiment utiliser la base de données à distance pour le travail de développement, à moins que vous utilisez un DB dev séparé -. Même alors je ne serais pas courir le risque de requêtes dev voyous manger les ressources DB à distance

Mise à jour:. Doh, raté, vous êtes limité à un accès FTP

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top