Si está seguro de que ninguno de los campos que se actualizarán están serializados, las soluciones anteriores funcionarán bien.
Sin embargo, si alguno de los campos que necesita actualización contiene datos serializados, una consulta SQL o una simple búsqueda / reemplazo en un archivo de volcado, interrumpirá la serialización (a menos que la cadena reemplazada tenga exactamente el mismo número de caracteres que la cadena buscada).
Para estar seguro, un campo "serializado" se ve así:
a:1:{s:13:"administrator";b:1;}
El número de caracteres en los datos relevantes se codifica como parte de los datos.
La serialización es una forma de convertir "objetos" en un formato fácilmente almacenado en una base de datos, o de transportar fácilmente datos de objetos entre diferentes idiomas.
Aquí hay una explicación de los diferentes métodos utilizados para serializar datos de objetos, y por qué es posible que desee hacerlo, y aquí hay una publicación centrada en WordPress: Datos serializados, ¿qué significa eso y por qué es tan importante? en lenguaje sencillo.
Sería sorprendente si MySQL tuviera alguna herramienta integrada para manejar datos serializados automáticamente, pero no es así, y dado que existen diferentes formatos de serialización, ni siquiera tendría sentido que lo haga.
wp-cli
Algunas de las respuestas anteriores parecían específicas de las bases de datos de WordPress, que serializa gran parte de sus datos. WordPress ofrece una herramienta de línea de comandos, WP buscar-reemplazar , que hace serialización mango.
Un comando básico sería:
wp search-replace 'an-old-string' 'a-new-string' --dry-run
Sin embargo, WordPress enfatiza que guid
nunca debe cambiarse , por lo que recomienda omitir esa columna.
También sugiere que muchas veces querrás saltarte la wp_users
mesa.
Así es como se vería:
wp search-replace 'https://old-domain.com' 'https://shiney-new-domain.com' --skip-columns=guid --skip-tables=wp_users --dry-run
Nota: agregué el --dry-run
indicador para que copiar y pegar no arruine automáticamente la base de datos de nadie. Una vez que esté seguro de que el script hace lo que desea, ejecútelo nuevamente sin esa marca.
Complementos
Si está utilizando WordPress, también hay muchos complementos gratuitos y comerciales disponibles que ofrecen una interfaz gui para hacer lo mismo, empaquetados con muchas características adicionales.
Interconnect / it script PHP
Interconnect / it ofrece un script php para manejar datos serializados: herramienta Safe Search and Replace . Fue creado para su uso en sitios de WordPress, pero parece que puede usarse en cualquier base de datos serializada por PHP.
Muchas empresas, incluida la propia WordPress, recomiendan esta herramienta. Instrucciones aquí, aproximadamente 3/4 abajo de la página.