Cómo recuperar la base de datos MySQL en Windows después de una actualización fallida de Windows

Cómo recuperar la base de datos MySQL en Windows después de una actualización fallida de Windows

Tengo un sistema que desarrollé en Java Spring y que almacena datos en una base de datos MySQL ejecutada localmente en Windows 10.

Ayer ejecuté la última actualización de Windows y después de 2 horas de trabajo mi computadora falló... y desde entonces Windows no quiere iniciarse y me da la opción de reinstalar Windows, con la posibilidad de conservar mis datos personales. Sin embargo, creo que borrará MySQL y todos los datos que estén almacenados.

Tengo Linux ejecutándose en la misma máquina, por lo que estoy intentando usar Linux para acceder a la base de datos y hacer una copia de seguridad usando mysqldump.

Para hacer eso, intenté montar el directorio donde se guardan los datos en Windows en el directorio de Linux usando el siguiente comando:

sudo mount --bind '/media/guillaume/Windows/ProgramData/MySQL/MySQL Server 5.7/Data' /var/lib/mysql

Luego reinicié el servidor mysql y abrí una consola SQL. Podría iniciar sesión en la Consola SQL usando la contraseña de Windows (es diferente de la contraseña de SQL en Linux) y podría enumerar todas las bases de datos guardadas en mi máquina con Windows.

Aquí cuando se vuelve más complicado. La consola SQL puede enumerar todas las tablas de la base de datos que me interesan, pero por alguna razón no puede consultar el contenido de las tablas. Puedo enumerar todas las tablas, pero no puedo consultarlas. SQL me dice que dicha tabla no existe, aunque acaba de enumerarla.

Tengo una captura de pantalla de esto, no hay ningún error tipográfico, pero el sitio no me permite publicar una imagen...

¿Cómo puedo resolver este problema? ¿O existe una forma más inteligente de crear un volcado desde la ubicación de Windows, aunque Windows no se esté iniciando?

Gracias por su ayuda !

Respuesta1

La razón por la que no funcionó es que había cambiado el nombre de la base de datos en windows a "database_W", para poder diferenciarla de la otra base de datos en linux que tenía el mismo nombre y que había recuperado de un respaldo que hice 2 hace semanas.

Copié el archivo ProgramData de Windows en un disco externo, así que copié esa copia de seguridad de la base de datos en mi carpeta de destino, y luego la consola SQL y mi IDE pudieron ver esta base de datos original, todas sus tablas y todos los datos. Utilicé mi IDE para crear un archivo de copia de seguridad (volcado).

Como señaló Rinzwind, es fundamental realizar copias de seguridad de los datos con regularidad, especialmente antes de las actualizaciones de Windows... ¡lección aprendida!

Entonces lo que hice para recuperar los datos fue:

  1. Utilice Linux para acceder a los datos de Windows y hacer una copia de seguridad de todos sus datos.
  2. Para recuperar datos SQL, le interesa la siguiente ubicación: '/media/guillaume/Windows/ProgramData/MySQL/MySQL Server 5.7/Data'. ¡NO CAMBIE NINGÚN NOMBRE AHÍ!
  3. Utilice el siguiente comando para montar su archivo ProgramData de Windows en el directorio de Linux apropiado:sudo mount --bind '/media/guillaume/Windows/ProgramData/MySQL/MySQL Server 5.7/Data' /var/lib/mysql
  4. Reinicie su servicio SQL (usé este comando: reinicio del servicio MySQL)
  5. Verifique con su consola SQL en la terminal de Linux que puede ver las bases de datos de Windows desde Linux y que puede acceder a los datos (usando una declaración del tipo select * from table);
  6. Utilice su IDE para conectarse a esta base de datos (usando las credenciales de Windows) para crear un archivo de volcado desde el IDE.

información relacionada