MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Recuperando uma instância mySQL de outra conta de usuário (macOS)


Eu estava usando o mac do meu amigo temporariamente até que o meu fosse atendido. Então, no início desta semana, excluí minha conta de usuário em seu mac, que tinha vários bancos de dados que eu precisava. Fiz backup da maioria dos dados do usuário antes de excluir essa conta, mas logo percebi que perdi o backup do banco de dados. A sorte e possivelmente a razão para isso é que o diretório de dados do banco de dados geralmente reside fora da conta do usuário. Neste artigo, mencionarei pontos de como recuperei esses dados do banco de dados usando a conta de usuário dos meus amigos (ou você pode até criar uma nova e fazer as mesmas etapas).
  • Certifique-se de que o mariadb ainda esteja instalado executando brew install mariadb .Descobri que estava disponível, mas o homebrew não tinha acesso ao diretório de instalação, pois foi criado a partir de uma conta de usuário diferente. Então, primeiro recuperamos isso executando:
sudo chown -R $(whoami) /usr/local/bin

Se o comando gerou um despejo de erro mostrando quais pastas ele não tem acesso, você pode executar o mesmo comando para cada uma das pastas. Eu também executei brew upgrade mariadb para manter os dados atualizados com a instalação do mariadb mais recente (embora eu não aconselhe executar isso geralmente até que você tenha feito backup dos bancos de dados).
  • Em seguida, você precisa descobrir qual diretório de dados o mariadb usa e executar chown nele também. Isso pode ser feito executando:
brew services list

Isso fornecerá uma lista dos serviços em execução e suas configurações de execução. Basta abrir a configuração das tarefas do mariadb e ver o parâmetro --datadir no XML--deve estar dentro do bloco de argumentos. No meu caso, isso foi --datadir=/usr/local/var/mysql . Agora copie esse caminho e execute:

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

Neste ponto, você pode se perguntar, por que não simplesmente copiar o diretório de dados para o próprio mac e abrir o banco de dados diretamente? O problema aqui é que a pasta tem apenas .ibd e .frm arquivos que realmente não são importáveis ​​pelo mySQL. Então eu tenho que executar o servidor mysql novamente com este diretório de dados e depois exportá-lo.
  • Em seguida, eu tive que parar qualquer servidor mysql em andamento para garantir que eu pudesse iniciar o mysql sem problemas. Eu faço isso executando:
brew services stop mariadb
ps aux | grep mysql

O último comando é verificar se não há outras instâncias do mysql em execução. Se o comando retornar quaisquer processos executando o mysql, eles precisam ser eliminados usando o comando kill -9 ou então, abra o Monitor de Atividade, use a pesquisa para filtrar o mysql e forçar a eliminação deles manualmente.

Agora, a nova instância do mysql pode ser iniciada usando:

brew services start mariadb

Alternativamente, você pode até chamar o programa encontrado na pasta bin mencionada no arquivo XML da configuração do serviço homebrew, ou seja, pegue a primeira string do programa e substitua mysqld_safe para mysql.server start e execute o comando. No meu caso, fiz isso executando:

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

Retornará o SUCESSO! se o serviço for iniciado com sucesso. Caso contrário, você teria que verificar os logs de erros (estava em /usr/local/var/mysql pasta para mim) para descobrir o que deu errado e resolvê-lo pesquisando no Google.

E é basicamente isso, agora você pode fazer backup dos bancos de dados como faria normalmente. Eu faço isso executando:

mysql -u root -p<password>
show databases

E isso daria uma lista de todos os bancos de dados. E, em seguida, execute o comando backup para cada banco de dados que você deseja fazer backup como:

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

E é mais ou menos assim que é feito. E eu joguei os bancos de dados no meu próprio laptop e pronto.