Status
Atualmente executo um servidor LAMP no Ubuntu 20.04, que possui um servidor MySQL contendo vários bancos de dados Drupal e Wordpress, juntamente com um banco de dados PHPMYADMIN.
Pedido
Existe algum especialista em banco de dados MySQL super inteligente que está disposto a publicar um "guia definitivo" sobre como migrar bancos de dados funcionais de um LAMP (MySQL-Server) para um LAMP (MariaDB-Server), CONTANDO TODOS OS PASSOS a partir de
1.) "Passo 1" = EXPORTAR os bancos de dados de trabalho desejados,
2.) para remover completamente o servidor MySQL,# Se necessário, eu sei que o Mariadb é um dropin
3.) para instalar no servidor MariaDB,
4.) e o "Último Passo " = IMPORTAR os bancos de dados de trabalho desejados?
Eu tenho pesquisado on-line há dias e posso encontrar tutoriais on-line "por etapas". Eu acho que o MariaDB ganha marketshare, tal tutorial seria valioso para usuários do Ubuntu 18.04 / 20.04. Se esse guia já existir, por favor, encaminhe :-)
Será difícil escrever um "guia definitivo" para todas as situações, pois cada servidor é diferente. As versões devem ser levadas em consideração, assim como os mecanismos de banco de dados e similares. Dito isso, o básico ficaria assim:
1 — Exporte todos os bancos de dados (com procedimentos e gatilhos intactos)
A primeira – e mais importante – é que você exporte primeiro todos os seus bancos de dados. Existem alguns que você não precisará daqui para frente, então vamos exportar apenas os que você gosta:
Certifique-se de alterar
{user}
para a conta de usuário com os privilégios mais altos em seu banco de dados, caso contrário, você poderá ter uma exportação incompleta. Certifique-se também de alterar o nome dos bancos de dados para seus nomes próprios e o nome de exportação para algo exclusivo.Eu não recomendaria usar o
--all-databases
sinalizador aqui, pois isso incluirá três tabelas específicas do MySQL que não devem ser instaladas em sua instalação MariaDB que será criada em breve.2 — Prepare uma lista de contas de banco de dados
Ao construir o novo banco de dados, será importante garantir que todas as suas contas de usuário importantes existam. Podemos consultar o banco de dados para ver quais são os nomes das contas de usuário e, mais importante, podemos consultar o banco de dados para construir as
CREATE
instruções que precisaremos posteriormente na etapa 5 deste guia.Faça login na sua instalação do MySQL e execute esta consulta:
Isso produzirá algo como:
Salve esta lista em um arquivo em algum lugar, pois você precisará dela em breve.
3 — Elimine completamente o MySQL do servidor
Se você tem 100% de certeza de que tem tudo o que precisa do banco de dados MySQL, agora é a hora de eliminá-lo do servidor.
sudo systemctl stop mysql
apt
:4 — Instale o Servidor MariaDB
Em seguida vem a instalação do MariaDB. Não vou passar por todas as diferentes opções de configuração que você pode querer instalar, mas vou apontar algumas que podem tornar sua vida um pouco mais fácil. Primeiro, porém, vamos instalá-lo:
Enquanto o MariaDB estiver instalado em seu servidor, a maioria das ferramentas que você usará será voltada para o MySQL. É por isso que o segundo comando é
mysql_secure_installation
em vez de algo com um nome mais apropriado.Quando você corre
mysql_secure_installation
, você será solicitado a estas perguntas:Enter current password for root (enter for none):
⇠ Aperte a EnterteclaSet root password? [Y/n]
⇠ EscolhaYEnter password
⇠ Insira um bom e, em seguida, insira-o novamente quando solicitado a confirmar.Agora, como você não pode entrar como
root
semsudo
, provavelmente desejará criar sua conta com todos os privilégios de administrador de que possa precisar.sudo mysql -u root -p
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'CorrectHorseBatteryStaple';
Observação: Certifique-se de alterar
admin
para o nome que você gostaria que sua conta fosse nomeada eCorrectHorseBatteryStaple
para uma senha menos conhecida que você lembrará.GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
⇠ Muito importante5 — Recrie as contas de usuário
Usando a lista que você preparou anteriormente, recrie as várias contas de usuário exigidas pelo WordPress, Drupal e (possivelmente) phpMyAdmin.
Nota: Certifique-se de definir os nomes de usuário e senhas para aqueles que você realmente deseja.
6 — Recrie seus bancos de dados
Para cada banco de dados que você precisa, execute isso no MariaDB:
Claro, mude
wordpress
para o nome real do banco de dados que você gostaria de criar.7 — Importe todos os bancos de dados para os novos DBs
Faça isso para cada um dos bancos de dados exportados, substituindo o nome do banco de dados e o arquivo SQL pelos corretos. Se você cometer um erro e importar um arquivo para o banco de dados errado, não se preocupe, você pode "corrigir" assim:
mysql -u admin -p
DROP DATABASE whoopsie;
CREATE DATABASE whoopsie CHARACTER SET = utf8 COLLATE = utf8_general_ci;
Agora podemos definir as permissões para as contas que criamos anteriormente:
Novamente, faça isso para cada conta, certificando-se de que elas tenham acesso aos bancos de dados corretos. Uma vez feito, libere os privilégios para garantir que eles estejam ativos:
Agora, neste estágio, você pode verificar novamente se os nomes dos bancos de dados, os nomes das contas e as senhas de todos os seus sites estão corretos. Se tudo estiver bem, reinicie seu servidor web e faça um teste.
Notas mais importantes:
Uma coisa que eu recomendo, TESTE ISSO ANTES . Eu vi muitas migrações do MySQL⇢MariaDB irem para o lado, então as pessoas me chamam a taxas loucas para corrigir os problemas. Teste, teste, teste. Algumas coisas no MySQL não funcionam de forma transparente no MariaDB. Você não quer estar no meio da migração e descobrir que uma tabela precisa de uma alteração de agrupamento ou um arquivo de importação está quebrado.
Se você tem experiência com máquinas virtuais, elas são ideais para testar migrações com.