Conforme exploramos em nosso artigo anterior de nossa MySQL Performance Series:MySQL vs. MariaDB, há muito poucas desvantagens em usar o MariaDB em vez do MySQL padrão. Nossos MariaDBs de alta disponibilidade provaram ser um sucessor digno com desvantagens facilmente mitigadas. Como último artigo de nossa série, vamos nos concentrar na atualização para várias versões do MySQL e do MariaDB nos seguintes servidores:
CentOS 6/7
- MySQL para MariaDB no CentOS 6/7 com cPanel
- MySQL para MariaDB no CentOS 7 com Plesk Onyx 17
- MySQL 5.1-5.5 para MariaDB 5.5 no CentOS 6
- MariaDB 5.5 para MariaDB 10.0 no CentOS 6
Ubuntu 14.04/16.04
- MySQL 5.1-5.5 para MariaDB 5.5 no Ubuntu 14.04
- MySQL 5.7 para MariaDB 10.2 no Ubuntu 16.04
Escolhendo um plano de atualização do MariaDB
Selecionar o plano de atualização correto requer determinar qual versão do MySQL está sendo executada no sistema pretendido. Um método universal para determinar qual versão do MySQL o servidor está executando atualmente é consultar o próprio servidor para relatar a versão. Isso funciona da mesma forma, apesar da distribuição Linux em execução no servidor:
mysql -h localhost -e 'MOSTRA VARIÁVEIS COMO "versão"\G'
Saída de exemplo:
~ $ mysql -h localhost -p -e 'MOSTRA VARIÁVEIS COMO "versão"\G'
************************ **** 1. linha ****************************
Nome_variável:versão
Valor:5.5.61 -MariaDB
Depois de identificar sua versão do MySQL, use a chave abaixo para localizar o procedimento de atualização correto para seu servidor específico. Algumas versões do MySQL requerem atualização para o MariaDB 5.5 antes de atualizar para as versões do MariaDB 10.x.
Como fazer upgrade do MySQL para o MariaDB
O processo de atualização é semelhante entre a maioria dos tipos de servidor. Existem diferenças com os comandos específicos que são executados, mas o procedimento geral segue este Procedimento geral de atualização:
- Agende um tempo de inatividade preciso.
- Garantir backups adequados.
- Remova os binários/pacotes existentes do MySQL.
- Instale o repositório MariaDB correto.
- Limpe os caches do repositório para eliminar dados de pacotes antigos.
- Instale os pacotes MariaDB por meio do gerenciador de pacotes do sistema.
- Inicie o MariaDB iniciando o serviço MySQL.
- Execute o script de atualização do MySQL.
- Confirme se os bancos de dados MySQL estão acessíveis e se os dados estão corretos
Incluímos procedimentos específicos abaixo para vários sistemas Liquid Web. Antes de escolher o procedimento de atualização aplicável, analisemos as duas primeiras etapas do Procedimento geral de atualização acima . Essas etapas são geralmente universais e críticas para o sucesso de qualquer plano de manutenção.
Programar tempo de inatividade preciso
Agendar janelas de manutenção adequadas para realizar alterações que afetam os ambientes de produção pode ser complicado. A janela do evento de manutenção deve incluir tempo suficiente para executar todas as tarefas necessárias no plano de manutenção, além de qualquer solução de problemas e tempo extra para concluir o Plano de Reversão, se necessário.
Garantir backups adequados
Há mais em um plano de backup de manutenção do que apenas fazer backup de arquivos e bancos de dados. Também é necessário formar um Plano de Reversão, que descreva o processo para restaurar o ambiente ao seu estado original antes do início da manutenção.
Eventos de manutenção às vezes podem levar a problemas imprevistos com a alternativa de reverter para backups. Ter um plano de backup válido e um plano de reversão válido para restaurar serviços é um componente crítico para uma manutenção bem-sucedida. Abaixo estão os esboços de um Plano de backup de amostra e um Plano de Reversão de Amostra que pode ser usado com o procedimento de atualização deste artigo descrito.
Exemplo de plano de backup
+Plano de reversão de amostra
+MySQL para MariaDB no CentOS 6/7 com cPanel
Todas as imagens do servidor Liquid Web cPanel incluem o MariaDB 5.5 já instalado. Isso inclui imagens de servidor CentOS 6 e CentOS 7. Não há necessidade de atualização, a menos que a série MariaDB 10.x seja necessária. Para uma atualização manual, procedimentos fornecidos pelo MariaDB aqui:Atualizando do MariaDB 5.5 para o MariaDB 10.0, caso contrário, o cPanel fornece uma interface fácil de apontar e clicar que faz todo o trabalho pesado para você. Siga um dos procedimentos abaixo na forma 'Somente texto' ou na forma Gráfica.
Instruções de atualização do cPanel MariaDB:
Etapa A) Confirme se os backups estão presentes antes de prosseguir no horário agendado.
Etapa B) Faça login no WHM e carregue as atualizações do MySQL/MariaDB página:
① Use a caixa de pesquisa rápida à esquerda e digite: mysql upgrade
② Localize e clique em Atualizações do MySQL/MariaDB link.
③ Selecionou a versão desejada do MariaDB.
④ Clique no botão Avançar .
Etapa C) Aguarde os “Avisos de upgrade ” para terminar de carregar.
① Leia e confirme cada mensagem de aviso marcando cada caixa de seleção.
② Clique no botão Continuar .
Etapa D) Aguarde o “Tipo de upgrade ” para terminar de carregar.
① Selecione Atualização autônoma para uma experiência de atualização perfeita.
② Clique no botão Continuar .
Etapa E) Aguarde a conclusão do processo de atualização.
MySQL para MariaDB no CentOS 7 com Plesk Onyx 17
Todas as imagens do servidor Liquid Web CentOS 7 incluem o MariaDB 5.5 já instalado, incluindo nossos servidores CentOS 7 Plesk Onyx 17. Não há necessidade de atualização, a menos que a série MariaDB 10.x seja necessária. Nesses casos, siga os procedimentos padrão de atualização do MariaDB Plesk aqui:Como atualizar o MySQL 5.5 para 5.6/5.7 ou MariaDB 5.5 para 10.0/10.1/10.2 no Linux
MySQL 5.1-5.5 para MariaDB 5.5 no CentOS 6
Devido à limitação de compatibilidade, o MySQL 5.1, 5.2, 5.3 e 5.5.x deve ser atualizado para o MariaDB 5.5 e não pode ser atualizado diretamente para o MariaDB 10.0. Este plano de atualização orientará a atualização de qualquer uma dessas versões obsoletas do MySQL para o MariaDB 5.5. Quando a atualização para o MariaDB 5.5 estiver concluída, siga Como atualizar o MariaDB 5.5 para o MariaDB 10.0 no CentOS 6 instruções para continuar o processo de atualização para o MariaDB 10.
Etapa 1: Confirme se os backups estão presentes antes de prosseguir no horário agendado.
Etapa 2: Pare o serviço MySQL.
serviço mysqld stop
Saída de Exemplo:
~ $ service mysqld restart
Parando o mysqld:[ OK ]
Etapa 3: Instale o repositório MariaDB 5.5 para CentOS 6
cat [mariadb]
name =MariaDB
baseurl =http://yum.mariadb.org/5.5/centos6 -amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
Este comando não tem saída visível, a menos que ocorram erros. Etapa 4: Limpe o cache do repositório yum
yum limpe tudo
Exemplo de saída:
~ $ yum clean all
Plugins carregados:fastmirror
Limpando repos:base extras mariadb updates
Limpando tudo
Limpando a lista de espelhos mais rápidos
Etapa 5: Remover pacotes MySQL
yum remove mysql-server mysql
Saída de exemplo:Executando teste de transação
Teste de transação bem-sucedido
Executando transação
Apagando:mysql-server-5.1.73-8.el6_8.x86_64 1/1
warning:/var/ log/mysqld.log salvo como /var/log/mysqld.log.rpmsave
Verificando:mysql-server-5.1.73-8.el6_8.x86_64 1/1
Removido:
mysql -server.x86_64 0:5.1.73-8.el6_8
Completo!
Truncado por questões de brevidade. Etapa 6: Instale o servidor MariaDB eMariaDB-client pacotes via yum.
yum install MariaDB-server MariaDB-client -y
Saída de exemplo:
Instalado:
MariaDB-client.x86_64 0:10.1.35-1.el6 MariaDB-compat.x86_64 0:10.1.35-1.el6 MariaDB-server.x86_64 0:10.1.35 -1.el6
Dependência instalada:
MariaDB-common.x86_64 0:10.1.35-1.el6 boost-program-options.x86_64 0:1.41.0-28.el6
galera .x86_64 0:25.3.23-1.rhel6.el6 jemalloc.x86_64 0:3.6.0-1.el6
Substituído:
mysql-libs.x86_64 0:5.1.73-8.el6_8
Completo!
Truncado por questões de brevidade. Etapa 7: Reinicie o serviço MySQL
início do mysql do serviço
Saída de exemplo:~ $ service mysql start
Iniciando MariaDB.180808 18:21:13 mysqld_safe Logando em '/var/lib/mysql/cent6.hostname.err'.
180808 18:21:13 mysqld_safe Iniciando o daemon mysqld com bancos de dados de /var/lib/mysql
SUCESSO!
Etapa 8: execute a ferramenta de atualização do MySQL mysql_upgrade
Saída de exemplo:~ $ mysql_upgrade
Atualização do MySQL detectada
Fase 1/4:Corrigindo visualizações do mysql
mysql
mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql .user OK
Fase 4/4:Executando 'mysql_fix_privilege_tables'
OK
Truncado por questões de brevidade. Etapa 9: confirmar que o servidor MariaDB está funcionando conforme o esperado
mysql -e 'MOSTRA VARIÁVEIS COMO "versão"\G'
Saída de exemplo:~ $ mysql -e 'MOSTRA VARIÁVEIS COMO "versão"\G'
**************************** 1 . linha **************************
Nome_variável:versão
Valor:5.5.61-MariaDB
Etapa 10: A atualização está concluída, verifique se seus bancos de dados existem e estão funcionando.
[ Opcional ] siga as instruções de Como atualizar o MariaDB 5.5 para o MariaDB 10.0 no CentOS 6.
MariaDB 5.5 para MariaDB 10.0 no CentOS 6
Etapa 1: Confirme se os backups estão presentes antes de prosseguir no horário agendado.
Etapa 2: Remova todos os pacotes MariaDB.
yum remove MariaDB-*
Saída de exemplo:Executando teste de transação
Teste de transação bem-sucedido
Executando transação
Apagando:MariaDB-server-5.5.61-1.el6.x86_64 1/2
Apagando :MariaDB-client-5.5.61-1.el6.x86_64 2/2
Verificando :MariaDB-server-5.5.61-1.el6.x86_64 1/2
Verificando :MariaDB- client-5.5.61-1.el6.x86_64 2/2
Removido:
MariaDB-client.x86_64 0:5.5.61-1.el6 MariaDB-server.x86_64 0:5.5.61-1 .el6
Completo!
Truncado por questões de brevidade. Etapa 3: Remova o repositório MariaDB existente.
rm -f /etc/yum.repos.d/MariaDB*.repo
Este comando não tem saída visível, a menos que ocorram erros. Etapa 4: Crie o arquivo de repositório MariaDB 10.O Yum.
cat [mariadb]
name =MariaDB
baseurl =http://yum.mariadb.org/10.0/centos6 -amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
Este comando não tem saída visível, a menos que ocorram erros. Etapa 5: Limpe o cache do Yum.
yum limpe tudo
Saída de exemplo:
~ $ yum clean all
Plugins carregados:fastmirror
Limpeza de repositórios:atualizações de base extras mariadb
Limpando tudo
Limpando a lista de espelhos mais rápidos
Etapa 6: Instale o servidor MariaDB e MariaDB-client pacote via Yum.
yum install MariaDB-server MariaDB-client
Saída de exemplo:
Executando teste de transação
Teste de transação bem-sucedido
Executando transação
Instalando:MariaDB-client-10.0.36-1.el6.x86_64 1 /2
Instalando:MariaDB-server-10.0.36-1.el6.x86_64 2/2
Verificando:MariaDB-server-10.0.36-1.el6.x86_64 1/2
Verificando :MariaDB-client-10.0.36-1.el6.x86_64 2/2
Instalado:
MariaDB-client.x86_64 0:10.0.36-1.el6 MariaDB-server.x86_64 0:10.0 .36-1.el6
Completo!
Truncado por questões de brevidade.
Etapa 7: Inicie o serviço MySQL.
início do mysql do serviço
Etapa 8: Execute o script de atualização do MySQL.
mysql_upgrade
Etapa 9: A atualização está concluída, verifique se seus bancos de dados existem e estão funcionando.
MySQL 5.1-5.5 para MariaDB 5.5 no Ubuntu 14.04
Etapa 1: Confirme se os backups estão presentes antes de prosseguir no horário agendado.
Etapa 2: Instale o repositório MariaDB 5.5 com este one-liner, ele instalará as ferramentas necessárias necessárias (se ausentes), a chave GPG do Ubuntu 14.04 e o repositório MariaDB 5.5 enquanto atualiza os caches de pacotes apt.
sudo apt-get install software-properties-common -y
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add -apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu trusty main'
sudo apt-get update
Exemplo de saída:
~ $ sudo apt-get install software-properties-common -y> /dev/null
~ $ sudo apt-key adv --recv-keys - -keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
Executando:gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.PtpHIXMNvY - -no-auto-check-trustdb --trust-model sempre --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --recv-keys --keyserver hkp:// keyserver.ubuntu.com:80 0xcbcb082a1bb943db
gpg:solicitando chave 1BB943DB do servidor hkp keyserver.ubuntu.com
gpg:chave 1BB943DB:chave pública "Chave de assinatura do pacote MariaDB " importado
gpg:número total processado:1
gpg:importado:1
~ $ sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http:/ /ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu trusty main'
~ $ sudo apt-get update> /dev/null
Truncado por questões de brevidade.
Etapa 3: Pare o serviço mysql.
sudo service mysql stop
Exemplo de saída:
~ $ sudo service mysql stop
mysql stop/waiting
Etapa 4: Renomeie o arquivo de configuração do MySQL /etc/mysql/my.cnf para /etc/mysql/my.cnf.bak. Esta etapa é necessária para garantir que todas as diretivas/variáveis incompatíveis foram removidas da configuração para evitar problemas com a instalação.
sudo mv /etc/mysql/my.cnf{,.bak}
Etapa 5: Instale o servidor mariadb pacote. Isso removerá simultaneamente os binários existentes do MySQL e, em seguida, instalará os novos binários do MariaDB.
sudo apt-get install mariadb-server -y
Exemplo de saída:
+
Etapa 6: Durante a instalação, uma caixa de diálogo na tela aparecerá solicitando a alteração da senha de root do MySQL duas vezes. Siga as instruções para alterar a senha ou ignorar a alteração fornecendo uma senha em branco.
Etapa 7: Quando concluído com sucesso, o serviço mysql deve iniciar automaticamente e o script mysql_upgrade é concluído automaticamente durante o processo de instalação.
A) Verifique se o serviço mysql está em execução.sudo service mysql status
Exemplo de saída:
~ $ sudo service mysql status
mysql start/running, process 4745
B) Verifique se o mysql_upgrade foi bem-sucedido.sudo mysql_upgrade
Saída de exemplo:
~ $ sudo mysql_upgrade
Esta instalação do MySQL já está atualizada para 5.5.61-MariaDB, use --force se você ainda precisar executar mysql_upgrade
Etapa 8: A atualização está concluída, verifique se seus bancos de dados existem e estão funcionando.
MySQL 5.7 para MariaDB 10.2 no Ubuntu 16.04
Etapa 1: Confirme se os backups estão presentes antes de prosseguir no horário agendado.
Etapa 2: Verifique se a conta root local tem uma senha adequada. Antes de atualizar para o MariaDB 10.2, verifique o 'root' @ 'localhost' usuário para garantir que uma senha seja atribuída de outra forma, o auth_socket plugin usa uma senha vazia. Esta é uma prática comum em configurações mais antigas e causa problemas com o processo de atualização devido ao modo padrão do MariaDB 10.2 em Strict SQL.
O script a seguir imprimirá os detalhes do usuário root local.
mysql -e 'selecione User,Host,Plugin,authentication_string do usuário onde authentication_string ="" e plugin ="auth_socket";' mysql
Exemplo de saída:
~ $ mysql -e 'selecione User,Host,Plugin,authentication_string from user where authentication_string ="" e plugin ="auth_socket";' mysql
+------+-----------+-------------+----------- ------------+
| Usuário | Anfitrião | Plug-in | autenticação_string |
+------+-----------+-------------+---------- -------------+
| raiz | localhost | auth_socket | |
+------+-----------+-------------+----------- ------------+
Abaixo estão dois exemplos de como atualizar essas entradas.
Método Automágico :O seguinte one-liner lê a senha de /root/.my.cnf e usa essa senha para atualizar a entrada do usuário MySQL, se o arquivo existir.
sudo test -e /root/.my.cnf &&sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$(awk -F"[=']" 'tolower($1) ~/password/{print $(NF-1)}' /root/.my.cnf)'; selecione User,Host,Plugin,authentication_string de user onde user ='root' e host ='localhost';" mysql || echo “ERRO:/root/.my.cnf não existe, você é root?”
Exemplo de saída:
~ $ sudo test -e /root/.my.cnf &&sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$(awk -F"[=']" 'tolower($1)~/password/{print $(NF-1)}' /root/.my.cnf)'; selecione User,Host,Plugin,authentication_string de user onde user ='root' e host ='localhost';" mysql || echo “ERRO:/root/.my.cnf não existe, você é root?”
+------+-----------+------ ---+-------------------------------- -----------+
| Usuário | Anfitrião | Plug-in | autenticação_string |
+------+-----------+-----------------------+ -------------------------------------------+
| raiz | localhost | mysql_native_password | *40C5E49F0CC7BDC637FEEDFBF14FF100C37619D7 |
+------+-----------+----------------------- +-------------------------------------------+
Método manual: A sintaxe a seguir é necessária para adicionar uma senha adequada à conta do usuário root. Não se esqueça de atualizar o arquivo /root/.my.cnf com a senha correta ou sua atualização pode encontrar erros. Certifique-se de substituir a senha correta por SuperSecretPass.
ALTER USER 'root'@'localhost' IDENTIFICADO COM mysql_native_password POR 'SuperSecretPass';
Etapa 3: Instale o repositório MariaDB 10.2. Esta é uma estrofe de vários comandos que instalará as ferramentas necessárias necessárias, chave GPG, repositório e atualizará os caches de pacotes.
sudo apt-get install software-properties-common -y> /dev/null
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,arm64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/10.2/ubuntu xenial main'
sudo apt -get atualização> /dev/null
Saída de exemplo:
~ $ sudo apt-get install software-properties-common -y
~ $ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu .com:80 0xF1656F24C74CD1D8
Executando:/tmp/tmp.J8PdET9w5B/gpg.1.sh --recv-keys
--keyserver
hkp://keyserver.ubuntu.com:80
0xF1656F24C74CD1D8
gpg:solicitando chave C74CD1D8 do servidor hkp keyserver.ubuntu.com
gpg:chave C74CD1D8:chave pública "Chave de assinatura MariaDB " importada
gpg:Número total processado:1
gpg:importado:1 (RSA:1)
~ $ sudo add-apt-repository 'deb [arch=amd64,arm64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/10.2/ubuntu xenial main'
~ $ sudo apt-get update> /dev/null
Truncado por questões de brevidade.
Etapa 4: Pare o serviço mysql.
sudo service mysql stop
Exemplo de saída:
~ $ sudo service mysql stop
mysql stop/waiting
Etapa 5: Renomeie o arquivo de configuração do MySQL /etc/mysql/my.cnf para /etc/mysql/my.cnf.bak. Esta etapa é necessária para garantir que todas as diretivas/variáveis incompatíveis foram removidas da configuração para evitar problemas com a instalação.
sudo mv /etc/mysql/my.cnf{,.bak}
Etapa 6: Instale o pacote mariadb-server. Isso removerá simultaneamente os binários existentes do MySQL e, em seguida, instalará os novos binários do MariaDB.
sudo apt-get install mariadb-server -y
Saída de exemplo:
~ $ sudo apt install mariadb-server -y
Etapa 7: Durante a instalação, uma caixa de diálogo na tela aparecerá solicitando que a senha do root não possa ser alterada porque já existe uma. Pressione enter para prosseguir.
Etapa 8: Quando concluído com sucesso, o serviço mysql deve iniciar automaticamente.
sudo service mysql status
Saída de exemplo:
~ $ sudo service mysql status
mysql start/running, process 4745
Etapa 9: Por fim, execute mysql_upgrade para concluir a atualização.
sudo mysql_upgrade
A saída ilustra erros normais durante a atualização.
Exemplo de saída:
+
Etapa 10: A atualização está concluída, verifique se seus bancos de dados existem e estão funcionando.