Cuando migramos nuestro Joomla a otro servidor (explicado en estos tutoriales: tutorial tutorial2 ) podemos migrar tambiénn la base de datos o enlazarla a la base de datos externa de otro servidor.
Para ello sólo tendremos que dar permisos, en la base de datos externa, al usuario de la base de datos de acceder desde otra o otras direcciones ip.
Pordemos hacerlo desde la línea de comandos con:
# mysql -u root -p
# GRANT ALL PRIVILEGES ON miBD.* TO 'miUsuario'@'192.168.1.xxx' IDENTIFIED BY 'mipassword' WITH GRANT OPTION;
Y ahora en el archivo de Joomla configuration.php modificaremos las siguientes opciones:
Hasta aquí son los pasos a seguir para establecer la conexión y estaría resuelta la tarea. Pero incluso habiendo seguido estos pasos puede que nuestro Joomla nos dé todavía algún error. En mi caso cuando intento cargar el sitio Joomla desde el navegador me sale un error de installation.
En caso de no funcionar todavía como he dicho. He encontrado algunas comprobaciones que debemos hacer:
1. Al editar el archivo /etc/mysql/my.cnf debería verse comentada la línea «bind-address = 127.0.0.1» o cambiarlo a «bind-address = 0.0.0.0″(de no comentarla/modificarla, solo se permiten conexiones locales)
2. Revisar si las librerías de MYSQL, están habilitadas y cargadas desde el archivo de configuración principal de PHP (el php.ini)
Si Apache y PHP os funciona, probad a subir un archivo al espacio web para obtener información con la función «phpinfo()»
3. Para conexiones con mysql, normalmente el puerto «3306» debería estar abierto. Antes de la zona desmilitarizada, habrá un cortafuegos o cablemodem y podría ser que ese puerto estuviera cerrado desde ahí, aunque la zona desmilitarizada «deje pasar todo». Es decir, revisar cortafuegos y similares.
4. Para conectar al MYSQL ponemos la ip directamente para evitar probalemas de resolucion de nombres.
(Ojo, los cambios en archivos de configuración requieren el reinicio de los servicios)
De estar todo bien configurado, volver a comprobar los siguientes datos en el archivo de Joomla configuration.php:
1. Nombre de usuario equivocado con permisos para el servidor con el que accede.
2. Contraseña equivocada
3. El nombre de la db incorrecto
4. En la opción $host, URL de conexión a la db equivocada (el error, suele suceder por indicar un «localhost», para realizar conexiones a mysql cuando esto está instalado en otra máquina distinta a la de Apache)
Por otra parte, con el tipo de conexión se podrían dar prorblemas debido a Joomla; ya que, aunque Joomla permita elegir entre los tipos «mysql y mysqli», con mysqli, puede dar algún problema.
Un tutorial muy bueno y detallado que he encontrado para instalar MySQL Server en Linux y permitir conexiones remotas es: tutorial