Cambiar y actualizar las URL de WordPress en la base de datos cuando el sitio se mueve a un nuevo host

Después de migrar un sitio de WordPress a una nueva URL, ya sea a un sitio de producción en vivo o un servidor de desarrollo de prueba, las nuevas cadenas de URL en la base dedatos MySQL deben cambiarse y actualizarse en las distintas  tablas de la base de datos MySQL .

Este método solo utiliza la base de datos MySQL completa en lugar de una exportación / importación de WordPress desde adentro y es el más adecuado para un intercambio directo. Así que copiaría todos los archivos / carpetas de WordPress al nuevo destino, establecería la propiedad correcta para esos archivos y luego haría el switcheroo de la base de datos.

Si no se siente cómodo interactuando directamente con la base de datos MySQL, le sugiero que revise y use WP Migrate Pro ; de lo contrario, siga leyendo.

Base de datos de WordPress Switcheroo

Primero, realice una exportación de la base de datos MySQL de la antigua base de datos en el servidor antiguo, cree una nueva base de datos en blanco en el nuevo servidor, importe los datos antiguos en PHPMyAdmin o mysql directamente en la línea de comandos .

Asegúrese de tener seleccionada la nueva base de datos, luego ejecute algunas actualizaciones de SQL y comandos de reemplazo en las tablas, en particular, wp_options, wp_posts, wp_postmeta.

Use el código como se muestra a continuación e intercambie sus URL antiguas y nuevas, sin barras diagonales. También si es necesario, cambie los valores del prefijo de la tabla donde corresponda (es decir, wp_)

ACTUALIZAR wp_options SET option_value = replace (option_value, 'http: //www.oldurl', 'http: //www.newurl') DONDE option_name = 'home' O option_name = 'siteurl'; 

ACTUALIZAR wp_posts SET guid = replace (guid, 'http: //www.oldurl','http: //www.newurl');

ACTUALIZAR wp_posts SET post_content = replace (post_content, 'http: //www.oldurl', 'http: //www.newurl');

ACTUALIZACIÓN wp_postmeta SET meta_value = replace (meta_value, 'http: //

o vía linea de comando :

nombre de usuario @ [~ / Escritorio]: mysql -u root -p databasename Introducir la contraseña: 

Leer la información de la tabla para completar los nombres de tablas y columnas Puede desactivar esta función para obtener un inicio más rápido con -A

Bienvenido al monitor MySQL. Los comandos terminan con; o g. Su ID de conexión de MySQL es 892 Versión del servidor: 5.5.13 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle y / o sus filiales. Todos los derechos reservados.

Oracle es una marca registrada de Oracle Corporation y / o su afiliados Otros nombres pueden ser marcas registradas de sus respectivos propietarios

Escriba 'ayuda'; o 'h' para ayuda. Escriba 'c' para borrar la declaración de entrada actual.

mysql> ACTUALIZAR wp_options SET option_value = replace (option_value, 'http: //www.oldurl', 'http: //www.newurl') DONDE option_name = 'home' O option_name = 'siteurl'; Consulta OK, 0 filas afectadas (0.00 seg) Filas emparejadas: 2 Cambiado: 0 Advertencias: 0

mysql> ACTUALIZAR wp_posts SET guid = replace (guid, 'http: //www.oldurl','http: //www.newurl'); Consulta OK, 0 filas afectadas (0.02 seg) Filas emparejadas: 964 Cambiado: 0 Advertencias: 0

mysql> ACTUALIZAR wp_posts SET post_content = replace (post_content, 'http: //www.oldurl', 'http: //www.newurl'); Consulta OK, 0 filas afectadas (0.05 seg) Filas emparejadas: 964 Cambiado: 0 Advertencias: 0

mysql> ACTUALIZAR wp_postmeta SET meta_value = replace (meta_value, 'http: //www.oldurl','http: //www.newurl'); g Consulta OK, 0 filas afectadas (0.01 seg) Filas emparejadas: 686 Cambiado: 0 Advertencias: 0


Finalmente, actualice su archivo de configuración de WordPress para reflejar la nueva base de datos, wp-config.php ”, que debería estar en la raíz de su documento web: cambio , nombre de la base de datos ,  nombre de usuario ,  contraseña y valores de host :

define ('DB_NAME', 'databasename'); 
/ ** Nombre de usuario de la base de datos MySQL * /
define ('DB_USER', 'nombre de usuario');
/ ** Contraseña de la base de datos MySQL * /
define ('DB_PASSWORD', 'contraseña');
/ ** Nombre de host MySQL * / define ('DB_HOST', 'localhost');

Ahora todo debería encajar perfectamente.

djave  ha creado un script agradable y fácil que toma las URL antiguas y nuevas y le entrega el código SQL para el intercambio de WordPress, ¡bien!

Datos serializados

A veces, pueden surgir problemas con un problema llamado datos serializados, que es cuando una matriz de datos PHP es algo así como encriptada con la URL real, por lo que si se cambia la URL, los datos desaparecen.

Hay 2 herramientas brillantes que pueden manejar datos serializados y hacer una búsqueda y reemplazo en la base de datos antigua y nueva de la URL y dejar los datos serializados intactos.

interconectarse

En primer lugar, se encuentra un script que se ejecuta al cargarlo y buscarlo después de migrar e importar su base de datos antigua a la nueva. Esto hará los cambios necesarios. Consíguelo desde aquí .

WP Migrate Pro

El segundo es un complemento comprobado y robusto que instala en su sitio original y ejecuta desde allí para buscar y reemplazar en la cadena de URL y Webroot, se exporta un nuevo volcado de base de datos y ese es el que importa en la nueva base de datos alojada de URL. WP Migrate Pro puede encontrar y reemplazar datos dentro de arreglos serializados. Consíguelo aquí .