Pregunta

Estoy teniendo problemas para hacer una conexión MySQL secundario (a una base de datos separada, externa) en mi código. Funciona bien en PHP 5.2.9, pero no se puede conectar en PHP 5.3.0. Estoy al tanto de (al menos algunos) de los cambios necesarios para hacer conexiones MySQL éxito en la versión más reciente de PHP, y han tenido éxito antes, así que no estoy seguro de por qué no está funcionando este momento.

Ya tiene una conexión db abierto a una base de datos local. Esta función continuación se utiliza para realizar una conexión adicional a un directorio remoto, separado. El archivo de configuración se incluye simplemente contiene los datos de bases de datos externas (host, usuario, pase y nombre). He comprobado y está siendo incluido correctamente.

function connectDP() {
    global $dpConnection;

    include("secondary_db_config.php);
    $dpConnection = mysql_connect($dp_dbHost, $dp_dbUser, $dp_dbPass, true) or DIE("ERROR: Unable to connect to Deployment Platform");
    mysql_select_db($dp_dbName, $dpConnection) or DIE("ERROR 006: Unable to select Deployment Platform Database");
}

a continuación, tratar de hacer que esta nueva conexión mediante una llamada telefónica esta función externa:

connectDP();

Pero cuando se carga la página (en 5.3.0), me sale el mensaje:

ERROR: Unable to connect to Deployment Platform

Estoy usando el booleano opcional bandera new_link como el cuarto argumento de la función mysql_connect() y todavía no funciona.

He estado devanando mi cerebro esta mañana tratando de averiguar por qué esta conexión no funciona (mientras que he hecho algo en otro lugar muy similar a una segunda base de datos independiente que realiza un trabajo). Cualquier ayuda sería muy apreciada.

Gracias!

Rich

¿Fue útil?

Solución

A partir de PHP 5.3 que utiliza su propio controlador de MySQL (mysqlnd) de forma predeterminada, en lugar de la libmysqlclient. Dependiendo de la plataforma no puede leer los valores predeterminados de archivo de configuración (por ejemplo. /etc/mysql/my.cnf) de su MySQL. Hay que editar php.ini y especificar los valores predeterminados para la extensión (s) se utiliza (mysql, mysqli, PDO). Por ejemplo, en Debian es necesario especificar la ruta de acceso a la toma de corriente (por ejemplo. /var/run/mysqld/mysqld.sock) a sí mismo en el archivo INI. Sólo tiene que ir a través del archivo INI y especificar las opciones que faltan y que debería funcionar.

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