Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Faça backup de seus bancos de dados MySQL


MySQL é um sistema de gerenciamento de banco de dados relacional (DBMS) de código aberto que é frequentemente implantado em uma ampla variedade de contextos. Na maioria das vezes, ele é implantado como parte do LAMP Stack. O sistema de banco de dados também é fácil de usar e altamente portátil e, no contexto de muitas aplicações, extremamente eficiente. Como o MySQL geralmente é um armazenamento de dados centralizado para grandes quantidades de dados de missão crítica, fazer backups regulares do banco de dados MySQL é uma das tarefas de recuperação de desastres mais importantes que um administrador de sistema pode executar. Este guia aborda vários métodos distintos para criar backups de seu banco de dados, bem como restaurar bancos de dados de backups.



Antes de iniciar o processo de instalação, presumimos que você tenha seguido as etapas descritas em Configurando e protegendo uma instância de computação. Além disso, você precisará instalar o banco de dados MySQL. Toda a configuração será realizada em uma sessão de terminal; certifique-se de estar logado no seu Linode como root via SSH. Se você é novo na administração de servidores Linux, pode estar interessado em nosso guia de introdução aos conceitos do Linux, guia para iniciantes e guia básico de administração.

Metodologia de backup


A maioria dos backups de bancos de dados MySQL neste guia são realizados usando o mysqldump ferramenta, que é distribuída com a instalação padrão do servidor MySQL. Recomendamos que você use mysqldump sempre que possível, porque geralmente é a maneira mais fácil e eficiente de fazer backups de banco de dados. Outros métodos detalhados neste guia são fornecidos para situações em que você não tem acesso ao mysqldump ferramenta, como em um ambiente de recuperação como o Finnix ou em situações onde a instância local do servidor MySQL não iniciará.

No entanto, este guia fornece uma mera visão geral do mysqldump ferramenta, pois há muitas opções e usos de mysqldump que estão além do escopo deste documento. Recomendamos que você se familiarize com todos os procedimentos abordados neste documento e continue sua exploração do mysqldump além dos casos aqui descritos. Certifique-se de observar o seguinte:
  • O *.sql arquivos criados com mysqldump pode ser restaurado a qualquer momento. Você pode até editar o banco de dados .sql arquivos manualmente (com muito cuidado!) usando seu editor de texto favorito.
  • Se seus bancos de dados usam apenas o mecanismo de armazenamento MyISAM, você pode substituir o mysqldump comando com o mais rápido mysqlhotcopy .

Criando backups de todo o sistema de gerenciamento de banco de dados (DBMS)


Muitas vezes é necessário fazer um backup (ou “dump”) de um sistema de gerenciamento de banco de dados inteiro junto com todos os bancos de dados e tabelas, incluindo os bancos de dados do sistema que contêm os usuários, permissões e senhas.

Opção 1:criar backups de um sistema de gerenciamento de banco de dados inteiro usando o utilitário mysqldump


O método mais direto para criar um único backup coerente de todo o sistema de gerenciamento de banco de dados MySQL usa o mysqldump utilitário a partir da linha de comando. A sintaxe para criar um dump de banco de dados com um timestamp atual é a seguinte:
mysqldump --all-databases > dump-$( date '+%Y-%m-%d_%H-%M-%S' ).sql -u root -p

Este comando solicitará uma senha antes de iniciar o backup do banco de dados no diretório atual. Esse processo pode levar de alguns segundos a algumas horas, dependendo do tamanho de seus bancos de dados.

Automatize este processo adicionando uma linha ao crontab :
0 1 * * * /usr/bin/mysqldump --all-databases > dump-$( date '+%Y-%m-%d_%H-%M-%S' ).sql -u root -pPASSWORD

Para o exemplo acima, use which mysqldump para confirmar o caminho correto para o comando e substitua root com o usuário mysql que você gostaria de executar os backups e PASSWORD com a senha correta para esse usuário.
Observação No exemplo do crontab, certifique-se de que não haja espaço entre o sinalizador -P e sua entrada de senha.

Opção 2:criar backups de um DBMS inteiro usando cópias do diretório de dados MySQL


Enquanto o mysqldump for o método de backup preferido, há alguns casos que exigem uma abordagem diferente. mysqldump só funciona quando o servidor de banco de dados está acessível e em execução. Se o banco de dados não puder ser iniciado ou o sistema host estiver inacessível, podemos copiar o banco de dados do MySQL diretamente. Esse método geralmente é necessário em situações em que você só tem acesso a um ambiente de recuperação como o Finnix com os discos do seu sistema montados nesse sistema de arquivos. Se você estiver tentando este método em seu próprio sistema, certifique-se de que o banco de dados não encontro. Emita um comando semelhante ao seguinte:
/etc/init.d/mysqld stop

Na maioria das versões de distribuição do MySQL, o diretório de dados está localizado no diretório /var/lib/mysql/ diretório. Se este diretório não existir, examine o /etc/mysql/my.cnf arquivo para um caminho para o diretório de dados. Como alternativa, você pode pesquisar o diretório de dados em seu sistema de arquivos emitindo o seguinte comando:
find / -name mysql

Depois de localizar o diretório de dados do MySQL, você pode copiá-lo para um local de backup. O exemplo a seguir assume que o diretório de dados do MySQL está localizado em /var/lib/mysql/ :
cp -R /var/lib/mysql/* /opt/database/backup-1266871069/

Neste caso, copiamos recursivamente o conteúdo do diretório de dados (por exemplo, /var/lib/mysql/ ) para um diretório dentro do /opt/ hierarquia (por exemplo, /opt/database/backup-1266871069/ ). Este diretório deve existir antes de iniciar a operação de cópia. Considere a seguinte sequência de operações:
/etc/init.d/mysql stop
mkdir -p /opt/database/backup-1266872202/
cp -R /var/lib/mysql/* /opt/database/backup-1266872202/

Esses comandos começam parando o daemon do servidor MySQL e, em seguida, criando um diretório chamado /opt/database/backup-1266872202/ , e executando uma cópia recursiva do diretório de dados. Observe que optamos por usar o backup-[time_t] convenção de nomenclatura para nossos exemplos. Substitua os caminhos acima por sua organização e esquema de nomenclatura preferidos. O cp O comando não produz saída e pode levar algum tempo para ser concluído, dependendo do tamanho do seu banco de dados. Não se assuste se demorar um pouco para ser concluído. Quando a operação de cópia estiver concluída, você pode querer arquivar o diretório de dados em um arquivo “tar” para facilitar o gerenciamento e a movimentação entre as máquinas. Emita os seguintes comandos para criar o arquivo:
cd /opt/database/backup-1266872202
tar -czfv * > /opt/mysqlBackup-1266872202.tar.gz

Uma vez que o tarball é criado, você pode facilmente transferir o arquivo da maneira que for mais conveniente para você. Não se esqueça de reiniciar o daemon do servidor MySQL novamente, se necessário:
/etc/init.d/mysql start

Criando backups de um único banco de dados


Em muitos casos, não é necessário criar um backup de todo o servidor de banco de dados. Em alguns casos, como atualizar um aplicativo da Web, o instalador pode recomendar fazer um backup do banco de dados caso a atualização afete negativamente o banco de dados. Da mesma forma, se você deseja criar um “dump” de um banco de dados específico para mover esse banco de dados para um servidor diferente, considere o método a seguir.

Quando possível, use o mysqldump ferramenta para exportar um “dump” de um único banco de dados. Este comando será semelhante ao seguinte:
mysqldump -u username -ps3cr1t -h localhost danceLeaders > 1266861650-danceLeaders.sql

O exemplo acima é como o exemplo na seção anterior, exceto em vez de usar o --all-databases opção, este exemplo especifica um nome de banco de dados específico. Neste caso, criamos um backup dos danceLeaders base de dados. A forma deste comando, em uma notação mais simples, é a seguinte:
mysqldump -u [username] -p[password] -h [host] [databaseName] > [backup-name].sql

Para um exemplo adicional, faremos backup do banco de dados chamado customer usando a conta de banco de dados raiz emitindo o seguinte comando:
mysqldump -u root -p -h localhost customer > customerBackup.sql

Será solicitada uma senha antes de mysqldump inicia seu processo de backup. Como sempre o arquivo de backup, neste caso customerBackup.sql , é criado no diretório em que você emite esse comando. O mysqldump O comando pode ser concluído em alguns segundos ou algumas horas, dependendo do tamanho do banco de dados e da carga no host ao executar o backup.

Criando backups de uma única tabela

Opção 1:criar backups de uma única tabela usando o utilitário mysqldump


Esta operação, como os usos anteriores do mysqldump utilitário neste documento, permite que você crie um backup de uma única tabela de banco de dados. Continuando nossos exemplos anteriores, o exemplo a seguir permite fazer backup da tabela usernameRecords nos danceLeaders base de dados.
 mysqldump -u username -ps3cr1t -h localhost danceLeaders usernameRecords \> 1266861650-danceLeaders-usernameRecords.sql

O exemplo acima é como o exemplo da seção anterior, exceto que adicionamos uma especificação de nome de tabela ao comando para especificar o nome da tabela que queremos fazer backup. A forma deste comando em uma notação mais simples é a seguinte:
mysqldump -u [username] -p[password] -h [host] [databaseName] [tableName] > [backup-name].sql

Para um exemplo adicional, faremos backup da tabela chamada “pedido” do banco de dados chamado customer usando a conta de banco de dados raiz emitindo o seguinte comando:
mysqldump -u root -p -h localhost customer order > customerBackup-order.sql

Será solicitada uma senha antes de mysqldump inicia seu processo de backup. Como sempre, o arquivo de backup (neste caso customerBackup.sql ) é criado no diretório em que você emite esse comando. O mysqldump O comando pode ser concluído em alguns segundos ou algumas horas, dependendo do tamanho do banco de dados e da carga no host ao executar o backup.

Opção 2:criar backups de uma única tabela usando o MySQL Client e uma declaração OUTFILE


O próprio cliente MySQL tem algum recurso de backup. É útil quando você já está conectado e não deseja sair da sessão atual. Se você estiver usando um sistema ativo e não puder arcar com o tempo de inatividade, considere bloquear temporariamente a mesa da qual está fazendo backup.

Esteja ciente de que ao fazer backup de uma única tabela usando o cliente MySQL, a estrutura dessa tabela não é mantida no backup. Somente os dados em si são salvos ao usar este método.

  1. Antes de começarmos, recomendamos executar um LOCK TABLES nas tabelas que você pretende fazer backup, seguido por FLUSH TABLES para garantir que o banco de dados esteja em um espaço consistente durante a operação de backup. Você só precisa de um bloqueio de leitura. Isso permite que outros clientes continuem a consultar as tabelas enquanto você faz uma cópia dos arquivos no diretório de dados do MySQL. Para um bloqueio de “leitura”, a sintaxe de LOCK TABLES se parece com o seguinte:
    1
    
    LOCK TABLES tableName READ;

    Para executar um LOCK TABLES no order tabela do customer banco de dados, emita o seguinte comando:
    mysql -u root -p -h localhost
    

    Em seguida, você será solicitado a fornecer a senha de root. Depois de inserir as credenciais do banco de dados, você chegará ao prompt do cliente mysql. Emita o seguinte comando para bloquear o order tabela no customer banco de dados (o ; à direita é necessário para comandos MySQL):
    1
    2
    3
    
    USE customer;
    LOCK TABLES order READ;
    FLUSH TABLES;

  2. Agora podemos iniciar a operação de backup. Para criar um backup de uma única tabela usando o cliente MySQL, você precisará estar conectado ao seu SGBD MySQL. Se você não estiver logado no momento, você pode fazer o login com o seguinte comando:
    mysql -u root -p -h localhost
    

    Será solicitada uma senha. Depois de inserir a senha correta e estar no prompt do cliente MySQL, você pode usar um SELECT * INTO OUTFILE demonstração. A sintaxe desta instrução se parece com o seguinte:
    1
    
    SELECT * INTO OUTFILE 'file_name' FROM tbl_name;

    Neste exemplo, criaremos um backup dos dados do order tabela do customer base de dados. Emita o seguinte comando para iniciar o procedimento de backup (o ; final é necessário para comandos MySQL):
    1
    2
    3
    4
    5
    
    USE customer;
    LOCK TABLES order READ;
    FLUSH TABLES;
    SELECT * INTO OUTFILE 'customerOrderBackup.sql' FROM order;
    UNLOCK TABLES;

    O customerOrderBackup.sql arquivo será criado no subdiretório de dados apropriado dentro do diretório de dados do MySQL. O diretório de dados do MySQL é comumente /var/lib/mysql/ . Neste exemplo, o OUTFILE será /var/lib/mysql/customer/customerOrderBackup.sql . A localização desse diretório e arquivo pode, no entanto, variar entre as distribuições do Linux. Se você não conseguir encontrar seu arquivo de backup, poderá procurá-lo com o seguinte comando:
    find / -name customerOrderBackup.sql
    

  3. Depois de concluir a operação de backup, você desejará desbloquear as tabelas usando o seguinte comando no cliente MySQL. Isso retornará seu banco de dados para sua operação normal. Faça login no cliente MySQL com o primeiro comando se você não estiver logado no momento e, em seguida, emita o segundo comando:
    mysql -uroot -p -h localhost
    
    1
    
    UNLOCK TABLES;

Você pode continuar usando seu banco de dados normalmente a partir deste ponto.

Considerações para uma estratégia de backup eficaz


A criação de backups do seu banco de dados MySQL deve ser uma tarefa regular e agendada. Você pode considerar agendar backups periódicos usando cron , mysqldump e/ou mail . Considere nossa documentação para obter mais informações sobre o cron. A implementação de uma solução de backup automatizada pode ajudar a minimizar o tempo de inatividade em uma situação de recuperação de desastres.

Você não precisa efetuar login como root ao fazer backup de bancos de dados. Um usuário MySQL com leitura (por exemplo, SELECT ) é capaz de usar tanto o mysqldump e mysql (por exemplo, o cliente MySQL) para fazer backups, conforme descrito abaixo. Como prática comum, recomendamos que você não use o MySQL root usuário sempre que possível para minimizar os riscos de segurança.

Você pode querer considerar backups incrementais como parte de um plano de backup de banco de dados de longo prazo. Embora esse processo não seja abordado aqui, recomendamos que você considere o recurso Métodos de backup do banco de dados MySQL para obter mais informações.

Restaurando um DBMS inteiro do backup


Um backup que não pode ser restaurado tem valor mínimo. Recomendamos testar seus backups regularmente para garantir que eles possam ser restaurados caso você precise restaurar a partir de backups. Ao usar backups de restauração do banco de dados MySQL, o método usado depende do método usado para criar o backup em questão.

Opção 1:Restaurando um DBMS inteiro usando o cliente MySQL e backups criados por mysqldump


Antes de iniciar o processo de restauração, esta seção assume que seu sistema está executando uma versão recém-instalada do MySQL sem nenhum banco de dados ou tabelas existentes. Se você já possui bancos de dados e tabelas em seu SGBD MySQL, faça um backup antes de continuar, pois este processo sobrescreverá os dados MySQL atuais.

Você pode restaurar facilmente todo o seu DBMS usando o mysql comando. A sintaxe para isso será semelhante à seguinte:
mysql -u [username] -p [password] < backupFile.sql

Neste caso, estamos simplesmente restaurando todo o DBMS. O comando terá a seguinte aparência:
mysql -u root -p < 1266861650-backup-all.sql

Você será solicitado a fornecer a senha do usuário root do MySQL. Assim que as credenciais corretas forem fornecidas, o processo de restauração começará. Como esse processo restaura um DBMS inteiro, pode levar de alguns segundos a muitas horas.

Opção 2:Restaurando um DBMS inteiro usando arquivos de dados MySQL copiados diretamente de Diretório de dados do MySQL


Antes de iniciar o processo de restauração, esta seção assume que seu sistema está executando uma versão recém-instalada do MySQL sem nenhum banco de dados ou tabelas existentes. Se você já possui bancos de dados e tabelas em seu SGBD MySQL, faça um backup antes de continuar, pois este processo sobrescreverá os dados MySQL atuais.

  1. Se você tiver um backup completo de seu diretório de dados MySQL (normalmente /var/lib/mysql ), você pode restaurá-lo a partir da linha de comando. Para garantir uma restauração bem-sucedida, você deve primeiro parar o daemon do servidor MySQL e excluir os dados atuais no diretório de dados do MySQL.
    /etc/init.d/mysql stop
    rm -R /var/lib/mysql/*
    

  2. No exemplo a seguir, o backup do diretório de dados do MySQL está localizado em /opt/database/backup-1266872202 diretório. Se você fez um tarball do diretório de dados quando fez backup do diretório de dados do DBMS, será necessário extrair os arquivos do tarball antes de copiar com os seguintes comandos:
     cp mysqlBackup-1266872202.tar.gz /var/lib/mysql/
     cd /var/lib/mysql
     tar xzvf mysqlBackup-1266872202.tar.gz
    

  3. Antes de podermos reiniciar o processo do banco de dados MySQL, devemos garantir que as permissões estejam definidas corretamente no arquivo /var/lib/mysql/ diretório. Para este exemplo, assumimos que o daemon do servidor MySQL é executado como o usuário mysql com o grupo mysql . Para alterar as permissões no diretório de dados, execute o seguinte comando:
    chown -R mysql:mysql /var/lib/mysql
    

  4. Altere o mysql:mysql parte deste comando se sua instância MySQL for executada com diferentes permissões de usuário e grupo. A forma deste argumento é [user]:[group] . Finalmente, podemos iniciar o daemon do servidor MySQL com o seguinte comando:
    /etc/init.d/mysql start
    

    Se você receber um erro semelhante ao seguinte:
    /usr/bin/mysqladmin: connect to server at 'localhost' failed
        error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
    

    Você precisará encontrar o antigo debian-sys-maint senha do usuário no /etc/mysql/debian.cnf e então altere o novo debian-sys-maint senha do usuário para ele. Você pode ver a senha antiga usando cat :
    cat /etc/mysql/debian.cnf | grep password
    

    Copie (ou lembre-se) da senha. Então você precisará alterar o novo debian-sys-maint senha do usuário. Você pode fazer isso entrando como usuário root do MySQL e emitindo o seguinte comando (onde é a senha do antigo debian-sys-maint do utilizador):
    1
    
    GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '<password>' WITH GRANT OPTION;

  5. Você precisará reiniciar o MySQL com o seguinte comando:
    /etc/init.d/mysql restart
    

Depois que o servidor MySQL for iniciado com sucesso, você desejará testar seu DBMS MySQL e garantir que todos os bancos de dados e tabelas sejam restaurados corretamente. Também recomendamos que você audite seus logs em busca de possíveis erros. Em alguns casos o MySQL pode iniciar com sucesso apesar dos erros do banco de dados.

Restaurando um único banco de dados do backup


Nos casos em que você criou apenas um backup para um banco de dados ou só precisa restaurar um único banco de dados, o processo de restauração é um pouco diferente.

Antes de iniciar o processo de restauração, esta seção assume que seu sistema está executando uma versão recém-instalada do MySQL sem nenhum banco de dados ou tabelas existentes. Se você já possui bancos de dados e tabelas em seu SGBD MySQL, faça um backup antes de continuar, pois este processo sobrescreverá os dados MySQL atuais.

  1. Para restaurar um único banco de dados usando o mysql comando, primeiro prepare o banco de dados de destino. Faça login no seu (novo) servidor de banco de dados MySQL usando o cliente MySQL:
    mysql -u root -p -h localhost
    

  2. Você será solicitado a fornecer a senha do usuário root do MySQL. Depois de fornecer as credenciais corretas, você deve criar o banco de dados de destino. Nesse caso, o customer banco de dados será restaurado:
    1
    
    CREATE DATABASE customer;

  3. Como em todas as instruções MySQL, não omita o ponto e vírgula final (por exemplo, ; ) na conclusão de cada comando. Dependendo de sua implantação, pode ser necessário criar um novo usuário MySQL ou recriar um usuário anterior com acesso ao banco de dados recém-criado. O comando para criar um novo usuário MySQL tem o seguinte formato:
    1
    
    CREATE USER '[username]'@'[host]' IDENTIFIED BY '[password]';

  4. No próximo exemplo, criaremos um usuário chamado customeradmin :
    1
    
    CREATE USER 'customeradmin'@'localhost' IDENTIFIED BY 's3cr1t';

  5. Agora vamos dar customeradmin privilégios para acessar o customer base de dados. O comando para conceder privilégios a um banco de dados para um usuário específico tem a seguinte forma:
    1
    
    GRANT [privilegeType] ON [databaseName].[tableName] TO '[username]'@'[host]'

  6. Para os propósitos do exemplo a seguir, forneceremos customeradmin acesso total ao customer base de dados. Emita o seguinte comando no cliente MySQL:
    1
    
    GRANT ALL ON customer.* TO 'customeradmin'@'localhost';

  7. Você pode precisar especificar diferentes concessões de acesso dependendo das demandas de sua implantação. Consulte a documentação oficial da instrução GRANT do MySQL. Uma vez que o banco de dados de destino e o usuário MySQL tenham sido criados, você pode fechar o cliente MySQL com o seguinte comando:
     quit
    

  8. Agora você pode usar o mysql comando para restaurar seu arquivo SQL. A forma deste comando é semelhante ao seguinte:
     mysql -u [username] -p[password] -h [host] [databaseName] < [filename].sql
    

No exemplo a seguir, restauraremos o customer banco de dados de um arquivo de backup SQL chamado customerBackup.sql (preste atenção especial ao < símbolo neste comando):
mysql -u root -p -h localhost customer < customerBackup.sql

Você será solicitado a fornecer a senha do usuário root do MySQL. Assim que as credenciais corretas forem fornecidas, o processo de restauração começará. A duração desta operação depende da carga do seu sistema e do tamanho do banco de dados que você está restaurando. Pode ser concluído em alguns segundos ou pode levar muitas horas.

Restaurando uma única tabela do backup

Opção 1:Restaurando uma única tabela usando o MySQL e backups criados pelo mysqldump


  1. Antes de iniciar o processo de restauração, assumimos que sua instância MySQL já possui um banco de dados existente que pode receber a tabela que você deseja restaurar. Se sua instância MySQL não tiver o banco de dados necessário, precisaremos criá-lo antes de continuar. Primeiro, faça login na sua instância MySQL com o seguinte comando:
    mysql -u root -p -h localhost
    

  2. Você será solicitado a fornecer a senha do usuário root do MySQL. Depois de fornecer as credenciais corretas, você deve criar o banco de dados de destino. Para o propósito deste exemplo, criaremos o customer base de dados.
    1
    
    CREATE DATABASE customer;

    Em seguida, saia do mysql incitar:
    quit
    

    Se você já possui o banco de dados necessário, pode pular a etapa acima com segurança. Para continuar com a restauração da tabela, emita um comando no seguinte formato:
    mysql -u [username] -p[password] -h [host] [databaseName] < [filename].sql
    

  3. Para o exemplo a seguir, restauraremos o order tabela no customer existente banco de dados de um arquivo de backup SQL chamado customerOrderBackup.sql . Tenha muito cuidado ao usar o < operador no seguinte comando:
    mysql -u root -p -h localhost customer < customerOrderBackup.sql
    

Você será solicitado a fornecer a senha do usuário root do MySQL. Assim que as credenciais corretas forem fornecidas, o processo de restauração começará. A duração desta operação depende da carga do seu sistema e do tamanho da tabela que você está restaurando. Pode ser concluído em alguns segundos ou pode levar muitas horas.

Opção 2:Restaurando uma única tabela usando o cliente MySQL e uma instrução INFILE para backups criados com OUTFILE


  1. Antes de iniciar o processo de restauração, assumimos que sua instância MySQL já possui um banco de dados existente que pode receber a tabela que você deseja restaurar. Se sua instância MySQL não tiver o banco de dados necessário, precisaremos criá-lo antes de continuar. Primeiro, faça login na sua instância MySQL com o seguinte comando:
    mysql -u root -p -h localhost
    

  2. Você será solicitado a fornecer a senha do usuário root do MySQL. Depois de fornecer as credenciais corretas, você deve criar o banco de dados de destino. Para o propósito deste exemplo, criaremos o customer base de dados.
    1
    
    CREATE DATABASE customer;

    Em seguida, saia do mysql incitar:
    quit
    

  3. O backup de dados usado neste caso foi criado usando o SELECT * INTO OUTFILE 'backupFile.sql' FROM tableName comando. Esse tipo de backup retém apenas os dados em si, portanto, a estrutura da tabela deve ser recriada. Para restaurar uma única tabela de dentro do cliente MySQL, você deve primeiro preparar o banco de dados e a tabela de destino. Faça login em sua (nova) instância MySQL usando o cliente MySQL:
    mysql -u root -p -h localhost
    

  4. Você será solicitado a fornecer a senha do usuário root do MySQL. Depois que as credenciais corretas forem fornecidas, você deverá criar o banco de dados de destino. Nesse caso, criaremos o customer base de dados. Emita a seguinte declaração:
    1
    
    CREATE DATABASE customer;

  5. Lembre-se de que os pontos e vírgulas (por exemplo, ; ) após cada declaração são obrigatórios. Agora você deve criar a tabela de destino com a estrutura correta. Os tipos de dados dos campos da tabela devem espelhar os da tabela de origem do backup. Neste exemplo, vamos restaurar o order tabela do customer base de dados. Existem 2 campos na order tabela, custNum com tipo de dados INT e orderName com tipo de dados VARCHAR(20); sua estrutura de tabela será diferente:
    1
    2
    
    USE customer;
    CREATE TABLE order (custNum INT, orderName VARCHAR(20));

  6. Dependendo de sua implantação, pode ser necessário criar um novo usuário MySQL ou recriar um usuário anterior com acesso ao banco de dados recém-criado. O comando para criar um novo usuário MySQL tem o seguinte formato:
    1
    
    CREATE USER '[username]'@'[host]' IDENTIFIED BY '[password]';

  7. No próximo exemplo, criaremos um usuário chamado customeradmin :
    1
    
    CREATE USER 'customeradmin'@'localhost' IDENTIFIED BY 's3cr1t';

  8. Agora vamos dar customeradmin privilégios para acessar o customer base de dados. O comando para conceder privilégios a um banco de dados para um usuário específico tem a seguinte forma:
    1
    
    GRANT [privilegeType] ON [databaseName].[tableName] TO '[username]'@'[host]'

    Para os propósitos do exemplo a seguir, forneceremos customeradmin acesso total ao customer base de dados. Emita o seguinte comando no cliente MySQL:
    1
    
    GRANT ALL ON customer.* TO 'customeradmin'@'localhost';

  9. Você pode precisar especificar diferentes concessões de acesso dependendo das demandas de sua implantação. Consulte a documentação oficial da instrução GRANT do MySQL. Uma vez que a tabela e o usuário tenham sido criados, podemos importar os dados de backup do arquivo de backup usando o LOAD DATA comando. A sintaxe é semelhante à seguinte:
    1
    
    LOAD DATA INFILE '[filename]' INTO TABLE [tableName];

    No exemplo a seguir, restauraremos os dados de uma tabela de um arquivo chamado customerOrderBackup.sql . Quando o cliente MySQL recebe o caminho e o nome do arquivo após INFILE , ele procura no diretório de dados do MySQL para esse arquivo. Se o nome do arquivo customerOrderBackup.sql foi fornecido, o caminho seria /var/lib/mysql/customerOrderBackup.sql . Certifique-se de que o arquivo que você está tentando restaurar existe, especialmente se o MySQL gerar File not found erros.

  10. Para importar os dados do customerOrderBackup.sql arquivo localizado em /var/lib/mysql/ , emita o seguinte comando:
    1
    
    LOAD DATA INFILE 'customerOrderBackup.sql' INTO TABLE order;

    Esse processo pode levar de alguns segundos a muitas horas, dependendo do tamanho da sua mesa. A duração desta operação depende da carga do seu sistema e do tamanho da tabela que você está restaurando. Pode ser concluído em alguns segundos ou pode levar muitas horas. Depois de verificar se seus dados foram importados com sucesso, você pode sair:
    quit
    

Mais informações


Você pode querer consultar os seguintes recursos para obter informações adicionais sobre este tópico. Embora estes sejam fornecidos na esperança de que sejam úteis, observe que não podemos garantir a precisão ou pontualidade dos materiais hospedados externamente.
  • O site oficial do MySQL
  • Página Métodos de backup do banco de dados MySQL
  • Página de manual do mysqldump
  • Agendar tarefas com o Cron
  • Declaração de concessão do MySQL, documentação oficial