Pregunta

se necesita para conectarse a una base de datos MySQL remota en PHP.

Específicamente Tengo esto como una constante:     define ( "DATABASE_SERVER", "localhost");     ...

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

Quiero copiar el sitio a mi máquina local, pero aún conectarse a la base de datos principal.

¿Puedo hacer esto? ¿si es así, cómo? Todo lo que tengo es el acceso FTP.

¿Fue útil?

Solución

Es necesario el IP / URL de la base de datos y poner que en lugar de localhost.
Es necesario asegurarse de que el DB de configuración permite conexiones remotas / fuera de la red local.
Una vez que el IP de la base de datos (debe ser propuesta por el equipo de soporte, si está siendo apoyado), usted sabrá.

Si todo lo que tiene que hacer es copiar los datos y construir de forma local en su máquina, por lo que no destruye datos en tiempo real, utilice la ficha de exportación en phpMyAdmin. Asumo que no tiene demasiados datos.
PHPmyadmin-> seleccione la base de datos (desde el marco de la izquierda) -> Presione la lengüeta de exportación (arriba, cuadro de la derecha)
. Debe quedar claro a partir de ahí.
Puede exportarlo como SQL y ejecutar este SQL en el equipo local.

Otros consejos

Me imagino que el servidor de base de datos está rechazando las conexiones remotas. Si tiene cPanel hay una sección llamada algo así como "Acceso a bases de datos remotas", donde se les puede permitir a ciertos rangos de IP.

Sugiero que exporte la base de datos en cuestión, y lo importa a nivel local. De esta manera, usted no va a destruir datos en tiempo real si te equivocas.

Muchas, si no la mayoría, los proveedores de alojamiento también proporcionan una interfaz de base de datos como phpMyAdmin. Puede exportar la base de datos a partir de ahí.

1 gnud. No debe utilizar la base de datos de producción para el trabajo de desarrollo, incluso si podría configurarlo para que escuche para el acceso externo en una interfaz de Internet (*). Un resbalón del ratón y se están escribiendo datos en tiempo real sobre importantes. En su lugar debe estar trabajando en un servidor de desarrollo autónomo de su propia, desde la que puede empujar los cambios de código en el servidor vivo cuando están trabajando y probado.

(*: ¿Qué es en sí mismo una muy mala idea:. Si las contraseñas son demasiado débiles o que se está ejecutando una versión antigua de MySQL con exploits disponibles que va a ser hackeado por sondas automáticas muy rápidamente)

Te normalmente exportar la base de datos desde el shell con el comando mysqldump dbname > dbdump.sql, e importarlos en el servidor local mediante la canalización en mysql dbname < dbdump.sql. También puede haber una interfaz web de administración de MySQL instalado en el servidor podría utilizar. Pero si todo lo que tienes es FTP, usted no ha sido realmente dado las herramientas que necesita para hacer el trabajo de desarrollo. Ver si se puede obtener una base de datos vacía o simulado para probar el sitio con.

(Lo que es más, FTP es un negocio sucio ... realmente en este siglo debería utilizar SFTP).

El enfoque más simple es tener DATABASE_SERVER puede definir como database (o algo menos significativa) y poner una entrada en el archivo de hosts. En el equipo local esto puede apuntar a la dirección remota, en el servidor de este apuntará a 127.0.0.1.

define('DATABASE_SERVER', database);

En las ventanas presentan sus sitios es:

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

por:

database <remote_ip>

Linux:

/etc/hosts

por:

database 127.0.0.1

Nota al pie: es el mando a distancia una producción DB DB? Si es así que en realidad no debería estar utilizando la base de datos remota para el trabajo de desarrollo, a menos que estés usando una base de datos separada dev -. Incluso entonces yo no correr el riesgo de consultas dev deshonestos consumiendo los recursos remoto DB

Actualización:. Doh, se perdió estás limitado a acceso FTP

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top