AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1308941
Accepted
nightwatch
nightwatch
Asked: 2021-01-19 01:48:03 +0800 CST2021-01-19 01:48:03 +0800 CST 2021-01-19 01:48:03 +0800 CST

Migrando o Ubuntu 20.04 LAMP do MySQL para o MariaDB

  • 772

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 :-)

server
  • 1 1 respostas
  • 3722 Views

1 respostas

  • Voted
  1. Best Answer
    user1091774
    2021-01-19T02:04:09+08:002021-01-19T02:04:09+08:00

    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:

    mysqldump -u {user} -p --events --routines --triggers wordpress > wordpress-export.sql
    mysqldump -u {user} -p --events --routines --triggers drupal > drupal-export.sql
    mysqldump -u {user} -p --events --routines --triggers phpmyadmin > phpmyadmin-export.sql
    

    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-databasessinalizador 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 CREATEinstruções que precisaremos posteriormente na etapa 5 deste guia.

    Faça login na sua instalação do MySQL e execute esta consulta:

    SELECT CONCAT('CREATE USER ''', `User`, '''@''', `Host`, ''' IDENTIFIED BY ''CorrectHorseBatteryStaple'';') as `username`
      FROM mysql.user
     WHERE `User` NOT LIKE 'mysql.%' and `User` NOT LIKE 'slave%'
       and `User` NOT IN ('root', 'debian-sys-maint')
     ORDER BY `username`;
    

    Isso produzirá algo como:

    CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'CorrectHorseBatteryStaple';
    CREATE USER 'drupal'@'localhost' IDENTIFIED BY 'CorrectHorseBatteryStaple';
    CREATE USER 'admin'@'%' IDENTIFIED BY 'CorrectHorseBatteryStaple';
    

    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.

    1. Verifique se o MySQL não está em execução:
      sudo systemctl stop mysql
    2. Remova completamente o MySQL:
    sudo apt purge mysql-server \ 
                   mysql-client \ 
                   mysql-common \ 
                   mysql-server-core-* \ 
                   mysql-client-core-*
    
    1. Elimine a configuração, os dados e os diretórios de log do MySQL:
    sudo rm -Rf /etc/mysql /var/lib/mysql /var/log/mysql
    
    1. Certifique-se de que tudo seja kosher em apt:
    sudo apt autoremove
    sudo apt autoclean
    

    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:

    sudo apt install mariadb-server
    sudo mysql_secure_installation
    

    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_installationem vez de algo com um nome mais apropriado.

    Quando você corre mysql_secure_installation, você será solicitado a estas perguntas:

    1. Enter current password for root (enter for none):⇠ Aperte a Entertecla
    2. Set root password? [Y/n]⇠ EscolhaY
    3. Enter password⇠ Insira um bom e, em seguida, insira-o novamente quando solicitado a confirmar.

    Agora, como você não pode entrar como rootsem sudo, provavelmente desejará criar sua conta com todos os privilégios de administrador de que possa precisar.

    1. Faça login no MariaDB:
      sudo mysql -u root -p
    2. Digite a senha que você definiu anteriormente.
    3. Crie sua conta:
      CREATE USER 'admin'@'localhost' IDENTIFIED BY 'CorrectHorseBatteryStaple';
      Observação: Certifique-se de alterar adminpara o nome que você gostaria que sua conta fosse nomeada e CorrectHorseBatteryStaplepara uma senha menos conhecida que você lembrará.
    4. Conceda todos os privilégios com a capacidade de fazer ... tudo:
      GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
    5. Liberar os privilégios:
      FLUSH PRIVILEGES;⇠ Muito importante

    5 — 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.

    CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'CorrectHorseBatteryStaple';
    CREATE USER 'drupal'@'localhost' IDENTIFIED BY 'CorrectHorseBatteryStaple';
    

    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:

    CREATE DATABASE wordpress CHARACTER SET = utf8 COLLATE = utf8_general_ci;
    

    Claro, mude wordpresspara o nome real do banco de dados que você gostaria de criar.

    7 — Importe todos os bancos de dados para os novos DBs

    mysql -u {user} -p wordpress < wordpress-export.sql
    

    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:

    1. Conecte-se ao MariaDB:
      mysql -u admin -p
    2. Digite sua senha
    3. Solte o banco de dados para o qual você importou acidentalmente:
      DROP DATABASE whoopsie;
    4. Recrie o banco de dados:
      CREATE DATABASE whoopsie CHARACTER SET = utf8 COLLATE = utf8_general_ci;
    5. Reimporte o arquivo correto.

    Agora podemos definir as permissões para as contas que criamos anteriormente:

    GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';
    

    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:

    FLUSH PRIVILEGES;
    

    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.

    • 7

relate perguntas

  • Como interagir graficamente com um servidor sem cabeça?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve