Archivo de la etiqueta: mysql

Mover un sitio WordPress a otro dominio

Les ha pasado alguna vez al terminar el desarrollo de un sitio en WordPress, que al mover el código al servidor del cliente, se pierden configuraciones, widgets, o menús?

El procedimiento que sigue la mayoría de personas es simplemente descargar la base de datos del sitio, buscar y reemplazar el nombre del dominio en el archivo SQL y luego subir este script modificado en el dominio nuevo.  Puede parecer que de esta forma todo esta bien, pero el problema esta en la forma como WordPress guarda la información de los widgets/menus en la base de datos: Serialized Data. Básicamente son cadenas de texto para el contenido y una variable para el tamaño de la cadena. Al buscar y reemplazar, la mayoría de las veces el nuevo nombre de dominio tiene mas o menos letras que el dominio que usamos para hacer el desarrollo y php al cargar el Serialized Data, rechaza el valor ya que el tamaño es diferente.

Desde el sitio oficial de WordPress nos dan la solucion al problema: utilizar el script http://spectacu.la/search-and-replace-for-wordpress-databases/ para hacer el cambio de dominio. Los pasos a seguir son:

  1. Descargar el script de la base de datos del sitio original.
  2. Sin hacer ninguna modificación, subir el script de la base de datos al servidor de destino.
  3. Instalar el script searchreplacedb2.php en el directorio public_html del servidor de destino y abrirlo en el navegador (ejemplo http://nuevoservidor.com/searchreplacedb2.php).
  4. Seguir las instrucciones en pantalla para buscar/reemplazar el nombre del dominio viejo, por el nombre de dominio nuevo.
  5. Borrar el script searchreplacedb2.php del servidor cuando termines! 

Es siempre recomendado bajar la última versión del archivo desde la pagina del desarrollador, pero por si acaso, aqui puedes bajar la version que utilice a la hora de escribir esta entrada:  searchreplacedb2.php

Drupal – Error de conexión con la base de datos MySql [mysql_old_password]

En algunas instalaciones de drupal en algunos servidores me he encontrado con problemas a la hora de seleccionar MySql como base de datos. Hasta ahora la solución  que había aplicado fue usar SqLite y olvidarme del problema… pero en un proyecto reciente requiero migrar un drupal de SqLite a MySql, con la ayuda del modulo DBTNG Migrator. Al empezar a mover la información de la base de datos, obtenía el mismo error que al instalar Drupal:

Drupal [mysql_old_password] Error

Me puse en la tarea de buscar cual podría ser el problema y encontré que las ultimas versiones de MySql usan un nuevo formato de password de 41 caracteres, mientras que la versión antigua es de solo 16, lo que causa que la función mysql_connect retorne errores.

La solución en mi caso fue editar en el servidor (usando SSH) el archivo /etc/my.cnf, desactivando el soporte a password antiguos cambiando el valor de la linea de OLD_PASSWORDS = 1 a OLD_PASSWORDS = 0 y reiniciando el servicio de MySql.

Luego actualice el formato de la contraseña en la base de datos ejecutando un par de lineas de sql como super admin del servidor:

Con todo listo volví al modulo DBTNG Migrator y todo funciono a la perfección:

Drupal DBTNG Migrator