sql >> Base de Datos >  >> RDS >> MariaDB

Recuperar una instancia de mySQL desde otra cuenta de usuario (macOS)

Estaba usando la Mac de mi amigo temporalmente hasta que se reparó la mía. Entonces, a principios de esta semana, eliminé mi cuenta de usuario en su Mac que tenía un montón de bases de datos que necesitaba. Había hecho una copia de seguridad de la mayoría de los datos del usuario antes de eliminar esa cuenta, pero pronto me di cuenta de que me perdí la copia de seguridad de la base de datos. Lo afortunado y posiblemente la razón de esto es que el directorio de datos de la base de datos generalmente reside fuera de la cuenta de usuario. En este artículo, mencionaré viñetas de cómo recuperé estos datos de base de datos utilizando la cuenta de usuario de mis amigos (o incluso puede crear una nueva y seguir los mismos pasos).

  • Asegúrese de que mariadb aún esté instalado ejecutando brew install mariadb Descubrí que estaba disponible pero homebrew no tenía acceso al directorio de instalación ya que se creó desde una cuenta de usuario diferente. Así que primero recuperamos esto ejecutando:
sudo chown -R $(whoami) /usr/local/bin

Si el comando arrojó un volcado de error que muestra a qué carpetas no tiene acceso, puede ejecutar el mismo comando para cada una de las carpetas. También ejecuté brew upgrade mariadb para mantener los datos actualizados con la instalación más reciente de mariadb (aunque generalmente no recomendaría ejecutar esto hasta que haya realizado una copia de seguridad de las bases de datos).

  • A continuación, debe averiguar qué directorio de datos usa mariadb y ejecutar chown en eso también. Esto se puede hacer ejecutando:
brew services list

Esto le dará una lista de los servicios en ejecución y sus configuraciones de ejecución. Simplemente abra la configuración de tareas de mariadb y vea el parámetro --datadir en el XML, debe estar dentro del bloque de argumentos. En mi caso, esto fue --datadir=/usr/local/var/mysql . Ahora copie esa ruta y ejecute:

sudo chown -R $(whoami) /usr/local/var/mysql

En este punto, puede preguntarse, ¿por qué no simplemente copiar el directorio de datos en su propia Mac y luego abrir la base de datos directamente? El problema aquí es que la carpeta solo tiene .ibd y .frm archivos que realmente no son importables por mySQL. Así que tengo que volver a ejecutar el servidor mysql con este directorio de datos y luego exportarlo.

  • Luego, tuve que detener cualquier servidor mysql en curso para asegurarme de poder iniciar mysql sin problemas. Hago esto ejecutando:
brew services stop mariadb
ps aux | grep mysql

El último comando es verificar que no haya otras instancias de mysql ejecutándose. Si el comando devuelve procesos que ejecutan mysql, entonces deben eliminarse con el comando kill -9 o, de lo contrario, abra el Monitor de actividad, use la búsqueda para filtrar mysql y forzar la eliminación manual.

Ahora, la nueva instancia de mysql se puede iniciar usando:

brew services start mariadb

Alternativamente, incluso puede llamar al programa que se encuentra en la carpeta bin mencionada en el archivo XML de la configuración del servicio homebrew, es decir, tomar la primera cadena del programa y reemplazar mysqld_safe a mysql.server start y ejecute el comando. En mi caso, lo hice ejecutando:

/usr/local/opt/mariadb/bin/mysql.server start

¡Te devolverá el ÉXITO! si el servicio se inicia correctamente. De lo contrario, tendría que comprobar los registros de errores (estaba en /usr/local/var/mysql carpeta para mí) para descubrir qué salió mal y resolverlo buscando en Google.

Y eso es todo, ahora puede hacer una copia de seguridad de las bases de datos como lo haría normalmente. Hago esto ejecutando:

mysql -u root -p<password>
show databases

Y esto daría una lista de todas las bases de datos. Y luego ejecute el comando de copia de seguridad para cada base de datos que desee respaldar como:

mysqldump -u root -p<password> dbname > dbname.sql

Y así es como se hace. Y lancé las bases de datos a mi propia computadora portátil y terminé.