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.