Carregando...
Como atualizar MySQL 5.5 para 5.6/5.7 ou MariaDB 5.5 para 10.x no Linux?
imprimir
  • MariaDB, MySQL, Atualizar
  • 0

Pergunta

Como atualizar MySQL 5.5 para 5.6/5.7 ou MariaDB 5.5 para 10.X no Linux?

Resposta

Este artigo fornece instruções para atualizar MySQL 5.5 para 5.6/5.7 e MariaDB 5.5 para 10.0/10.1/10.2/10.3/10.4/10.5/10.6 no Linux.

 Note: O upgrade pode ser realizado em uma interface de linha de comando com as instruções abaixo, por sua própria conta e risco. Essa tarefa deve ser realizada por um administrador de sistemas.

Para descobrir sua distribuição Linux, execute:

# plesk version | grep "OS version"

Ou:

cat /etc/*-release

Atenção: MariaDB 10.11 é suportado a partir do Plesk Obsidian 18.0.52. MariaDB 10.4 e versões posteriores são suportadas a partir do Plesk Obsidian 18.0.30. Versões anteriores (Onyx e mais antigas) não suportam MariaDB a partir da versão 10.3 e não há planos de implementá-la atualmente.

Atenção:
A atualização direta do MySQL 5.1 para o MySQL 5.6/5.7 irá quebrar a estrutura das tabelas. As instruções para atualizar o MySQL de 5.1 para 5.5 no Linux estão disponíveis aqui: Como atualizar o MySQL de 5.1 para 5.5 no Linux.

Atenção:
A atualização direta do MariaDB 5.5 ou 5.7 para o MariaDB 10.6 ou versões posteriores não é possível.
Você deve primeiro atualizar o MariaDB 5.5 ou 5.7 para qualquer versão do MariaDB de 10.3 a 10.5 e, em seguida, realizar uma atualização para o MariaDB 10.6 ou versões posteriores.


É altamente recomendável criar um instantâneo do servidor (backup completo) antes da atualização. Execute a atualização do MySQL por sua conta e risco.

Antes de iniciar uma atualização do MySQL, pare o serviço WatchDog se ele for usado em um servidor. Verifique seu status com o service watchdog status comando.

 Note: MySQL will not be upgraded on CentOS/RHEL-based operating systems if it was installed from the Webtatic Yum repository:

rpm -qa | grep -i mysql
mysql55w-server-5.5.57-1.w6.x86_64

 

Para iniciar uma atualização do MySQL/MariaDB, conecte-se a um servidor via SSH como root/superusuário e siga as instruções do seu sistema operacional:

Por padrão, o CentOS 8 é fornecido com o MariaDB 10.3.

Por motivos de segurança, crie um despejo de banco de dados de todos os bancos de dados com o seguinte comando:

MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysqldump -u admin --verbose --all-databases --routines --triggers > /tmp/all-databases.sql

Parar MariaDB:

service mariadb stop

Remova o pacote adicional em conflito com a versão 10.4:

yum remove mariadb-gssapi-server

Por motivos de segurança, copie o diretório do banco de dados em uma pasta separada:

cp -v -a /var/lib/mysql/ /var/lib/mysql_backup

Configure o repositório MariaDB: abra a página Setting MariaDB repositories , selecione sua distribuição de sistema operacional, lançamento e versão desejada do MariaDB. /etc/yum.repos.d/MariaDB.repo Feito isso, aparecerá a configuração que deve ser adicionada ao arquivo.

 Atenção: MariaDB 10.4 and later versions are supported since 18.0.30, make sure the latest Plesk version is installed.

Aqui está um exemplo para MariaDB 10.4:

5.1. Abra/crie o arquivo MariaDB.repo em qualquer editor de texto. Neste exemplo, estamos usando o editor vi :

vi /etc/yum.repos.d/MariaDB.repo

5.2. Adicione o conteúdo abaixo ao arquivo:

[mariadb]
nome = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos8-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
priority=1
module_hotfixes= 1

O item de configuração module_hotfixes=1 é uma solução alternativa para o que MariaDB disse ser um bug dnf. Veja MDEV-20673 para mais detalhes

5.3. Salve as alterações e feche o arquivo.

Redefina todo o cache:

yum clean all

Inicie uma atualização do MariaDB para 10.4:

yum clean all

Caso atualize para o MariaDB 10.6 ou mais recente, é necessário ajustar o my.cnfarquivo de configuração para corresponder aos novos requisitos:

sed -i 's/bind-address = ::ffff:127.0.0.1/bind-address = 127.0.0.1/g' /etc/my.cnf

Assim que a atualização for concluída, inicie o MariaDB:

systemctl restart mariadb

Atualize os bancos de dados MySQL:

MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql_upgrade -uadmin

Reinicie o serviço mariadb:

systemctl restart mariadb

Execute este comando para atualizar a versão do pacote dentro do Plesk:

plesk sbin packagemng -sdf

Restaure o contexto do SeLinux:

restorecon -v /var/lib/mysql/*

Por padrão, o CentOS 7 é fornecido com o MariaDB 5.5. A versão MariaDB 10.x é um substituto para o MySQL 5.5-5.7.

 

Método automático

 Note: O script abaixo é aplicável apenas para atualizar o MariaDB 5.5 padrão para a versão MariaDB 10.5, para outros casos, aplique as etapas da seção Método Manual. Certifique-se de que o Obsidian 18.0.30 ou posterior esteja instalado no servidor.

Faça o download do script em anexo e forneça a ele direitos executáveis:

wget https://raw.githubusercontent.com/plesk/kb-scripts/master/c7-mariadb-10-5-upgrade/c7-mariadb-10-5-upgrade.sh && chmod +x c7-mariadb-10-5-upgrade.sh

Execute o script via CLI:

./c7-mariadb-10-5-upgrade.sh

 

Método manual

Por motivos de segurança, crie um despejo de banco de dados de todos os bancos de dados com o seguinte comando:

MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysqldump -u admin --verbose --all-databases --routines --triggers > /root/all-databases.sql

Parar MariaDB:

service mariadb stop

Remova mariadb-bench o pacote adicional se instalado:

rpm -e --nodeps mariadb-bench

Por motivos de segurança, copie o diretório do banco de dados em uma pasta separada:

cp -v -a /var/lib/mysql/ /var/lib/mysql_backup

Verifique se o pacote mariadb-server já está instalado:

rpm -q --whatprovides mariadb-server

Se estiver instalado e o comando acima der saída, remova usando o seguinte comando:

rpm -e --nodeps `rpm -q --whatprovides mariadb-server`

Configure o repositório MariaDB:

 Atenção: O MariaDB 10.4 e versões posteriores são suportados desde a versão 18.0.30, certifique-se de ter instalada a versão mais recente do Plesk.

Aqui está um exemplo para MariaDB 10.5:

6.1. O seguinte comando adiciona o repositório MariaDB 10.5:

curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=10.5

Note: Verifique se outros repositórios do MariaDB não estão habilitados em /etc/yum.repos.d/.

Redefina todo o cache:

yum clean all

Inicie uma atualização do MariaDB:

yum install MariaDB-client MariaDB-server MariaDB-compat MariaDB-shared

Caso atualize para o MariaDB 10.6 ou mais recente, é necessário ajustar o my.cnf arquivo de configuração para corresponder aos novos requisitos:

sed -i 's/bind-address = ::ffff:127.0.0.1/bind-address = 127.0.0.1/g' /etc/my.cnf

iniciar MariaDB:

systemctl restart mariadb

OU

systemctl restart mysql

Atualize os bancos de dados MySQL:

MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql_upgrade -uadmin

Reinicie o serviço mysql:

systemctl restart mariadb

OU

systemctl restart mysql

Execute este comando para atualizar a versão do pacote dentro do Plesk:

plesk sbin packagemng -sdf

Note: Após uma atualização, pode aparecer o script de inicialização 'mysql'. Ele deve ser removido para evitar conflitos com o serviço do MariaDB. Os mesmos comandos podem ser usados para corrigir conflitos já existentes.

systemctl stop mysql; killall mysqld # to stop the incorrect service if it is started
# rm -f /etc/init.d/mysql && systemctl daemon-reload # to remove the incorrect service script and reload systemctl configuration
# systemctl start mariadb # to start MariaDB if not started
# systemctl enable mariadb # to make sure that MariaDB will start after the server reboot automatically


                                                                               

 

Crie um backup de todos os bancos de dados com o seguinte comando:

MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysqldump -u admin --verbose --all-databases --routines --triggers > /root/all-databases.sql

Pare o serviço MySQL:

service mysqld stop

Copie um diretório de bancos de dados em uma pasta separada como esta (também para fins de backup):

cp -v -a /var/lib/mysql/ /var/lib/mysql_backup

Caso a diretiva de endereço de ligação esteja presente, /etc/my.cnf certifique-se de que seja a seguinte:

bind-address = 127.0.0.1

Inicie o serviço MySQL:

service mysqld start

Selecione a versão do MySQL/MariaDB para instalar:

 Note: O comando a seguir não funciona se o pacote governor-mysql não estiver instalado. Nesse caso, instale-o:
# yum install governor-mysql

/usr/share/lve/dbgovernor/mysqlgovernor.py --mysql-version=XXXXX

 Note: Em 'XXXXX' deve ser substituído por um dos seguintes:
mariadb100 for MariaDB v10.0
mariadb101 for MariaDB v10.1
mariadb102 for MariaDB v10.2
mariadb103 for MariaDB v10.3
mariadb104 for MariaDB v10.4
mariadb105 for MariaDB v10.5
mariadb106 for MariaDB v10.6
mysql55 for MySQL v5.5
mysql56 for MySQL v5.6
mysql57 for MySQL v5.7

Instale o mecanismo MariaDB selecionado anteriormente:

/usr/share/lve/dbgovernor/mysqlgovernor.py --install

 Atenção: A CloudLinux não recomenda fazer downgrade do MySQL v5.6 ou do MariaDB 10.x.

Reinicie o MySQL:

service mysql restart

Atualize os bancos de dados MySQL:

MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql_upgrade -uadmin

Reinicie o MySQL:

service mysql restart

Execute os seguintes comandos para atualizar a versão do pacote dentro do Plesk:

plesk bin service_node --update local
# plesk sbin packagemng -sdf

Por padrão, o Debian 10 é fornecido com o MariaDB 10.3.

Por motivos de segurança, crie um despejo de banco de dados de todos os bancos de dados com o seguinte comando:

MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysqldump -u admin --verbose --all-databases --routines --triggers > /root/all-databases.sql

Parar MariaDB:

service mariadb stop

Aqui está um exemplo para MariaDB 10.4 :

Warning: MariaDB 10.4 and later versions are supported since 18.0.30, make sure the latest Plesk version is installed.

Instalar repositórios:

apt-get install software-properties-common dirmngr apt-transport-https

 

apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'

 

curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=10.4

 

Crie um backup de todos os dados do MySQL:

cp -v -a /var/lib/mysql/ /var/lib/mysql_backup

Inicie uma atualização com o seguinte comando. Deixe todos os campos vazios quando for solicitada uma senha de usuário 'root':

apt-get update

 

apt-get install mariadb-server

Se a instalação falhar com dependências não atendidas:

plesk-mysql-server depends on virtual-mysql-server | mysql-server; however:
Package virtual-mysql-server is not installed.
Package mariadb-server-10.3 which provides virtual-mysql-server is to be removed.
Package mysql-server is not installed.
[...]
dpkg: error processing archive /var/cache/apt/archives/mariadb-server-10.4_1%3a10.4.14+maria~buster_amd64.deb (--unpack):
trying to overwrite '/usr/bin/my_print_defaults', which is also in package mariadb-server-core-10.3 1:10.3.22-0+deb10u1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/mariadb-server-10.4_1%3a10.4.14+maria~buster_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

OU

The following packages have unmet dependencies:
mariadb-server : Depends: mariadb-server-10.4 (>= 1:10.4.14+maria~buster) but it is not going to be installed
plesk-mysql-server : PreDepends: virtual-mysql-server or
mysql-server but it is not installable
Depends: virtual-mysql-server or
mysql-server but it is not installable

Execute o comando abaixo para corrigi-los:

apt --fix-broken install

Ajuste o my.cnfarquivo de configuração para corresponder aos novos requisitos:

sed -i 's/bind-address = ::ffff:127.0.0.1/bind-address = 127.0.0.1/g' /etc/mysql/my.cnf

Inicie o serviço MariaDB:

systemctl start mariadb.service

Atualize os bancos de dados MySQL:

MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql_upgrade -uadmin

Reinicie o serviço mysql:

systemctl restart mariadb

Execute os seguintes comandos para atualizar a versão do pacote dentro do Plesk:

plesk bin service_node --update local
# plesk sbin packagemng -sdf

O Debian 9 é basicamente fornecido com o MariaDB. A versão MariaDB 10.x é um substituto para o MySQL 5.5/5.6/5.7

Faça backup de todos os bancos de dados existentes usando o artigo KB Como fazer backup/restaurar um despejo de banco de dados Plesk e siga as instruções no site MariaDB para atualizá-lo:

Exemplo para MariaDB 10.2

Instale o MariaDB:

1.1. Pare o serviço MariaDB:

service mariadb stop

 

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=mariadb-10.2

# apt install mariadb-server-10.2

Se a instalação falhar com dependências não atendidas:

dpkg: mariadb-server-10.1: dependency problems, but removing anyway as you requested:
plesk-mysql-server depends on virtual-mysql-server | mysql-server; however:
Package virtual-mysql-server is not installed.
Package mariadb-server-10.1 which provides virtual-mysql-server is to be removed.
Package mariadb-server-10.2 which provides virtual-mysql-server is not installed.
Package mysql-server is not installed.
<...>
The following packages have unmet dependencies:
mariadb-server-10.2 : Depends: mariadb-client-10.2 (>= 10.2.19+maria~stretch) but it is not going to be installed
Depends: mariadb-server-core-10.2 (>= 10.2.19+maria~stretch) but it is not going to be installed

Execute o comando abaixo para corrigi-los:

apt --fix-broken install

Verifique a versão do MySQL:

mysql -V
mysql Ver 15.1 Distrib 10.2.19-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Inicie o serviço MariaDB:

service mariadb start

Note: It may be already started

Atualize os bancos de dados MySQL:

MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql_upgrade -uadmin

Reinicie o serviço mysql:

service mariadb restart

Execute os seguintes comandos para atualizar a versão do pacote dentro do Plesk:

plesk bin service_node --update local
# plesk sbin packagemng -sdf

O Ubuntu 18.04 é fornecido com o MariaDB 10.1. A versão MariaDB 10.x é um substituto para o MySQL 5.5-5.7. Para atualizar o MariaDB 10.1 para o MariaDB 10.x, siga estas etapas:

Crie um backup de todos os bancos de dados com o seguinte comando:

MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysqldump -u admin --verbose --all-databases --routines --triggers > /tmp/all-databases.sql

Pare o serviço MariaDB:

service mariadb stop

Aqui está um exemplo para MariaDB 10.2:

Warning: MariaDB 10.4 and later versions are supported since 18.0.30, make sure the latest Plesk version is installed.

Instalar repositórios:

apt-get install software-properties-common

 

apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'

 

curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=10.2

Crie um backup de todos os dados do MySQL:

cp -v -a /var/lib/mysql/ /var/lib/mysql_backup

Inicie uma atualização com o seguinte comando. Deixe todos os campos vazios quando for solicitada uma senha de usuário root:

apt-get update

 

apt-get install mariadb-server

Inicie o serviço MariaDB:

systemctl start mariadb

Atualize os bancos de dados MySQL:

MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql_upgrade -uadmin

Reinicie o serviço mysql:

systemctl restart mariadb

Execute os seguintes comandos para atualizar a versão do pacote dentro do Plesk:

plesk bin service_node --update local
# plesk sbin packagemng -sdf

Por padrão, o Ubuntu 20.04 vem com MariaDB 10.3 e o Ubuntu 22.04 com MariaDB 10.6.

Por motivos de segurança, crie um despejo de banco de dados de todos os bancos de dados com o seguinte comando:

MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysqldump -u admin --verbose --all-databases --routines --triggers > /tmp/all-databases.sql

Parar MariaDB:

service mariadb stop

Aqui está um exemplo para MariaDB 10.4 :

Warning: MariaDB 10.4 and later versions are supported since 18.0.30, make sure the latest Plesk version is installed.

Instalar repositórios:

apt-get install software-properties-common

 

apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'

 

curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=10.4

Crie um backup de todos os dados do MySQL:

cp -v -a /var/lib/mysql/ /var/lib/mysql_backup

Inicie uma atualização com o seguinte comando. Deixe todos os campos vazios quando for solicitada uma senha de usuário 'root':

apt-get update

 

apt-get install mariadb-server

Ajuste o my.cnfarquivo de configuração para corresponder aos novos requisitos:

sed -i 's/bind-address = ::ffff:127.0.0.1/bind-address = 127.0.0.1/g' /etc/mysql/my.cnf

Inicie o serviço MariaDB:

service mariadb start

Atualize os bancos de dados MySQL:

MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql_upgrade -uadmin

Reinicie o serviço mysql:

service mariadb restart

Execute os seguintes comandos para atualizar a versão do pacote dentro do Plesk:

plesk bin service_node --update local
# plesk sbin packagemng -sdf

 

 

 

Esta resposta lhe foi útil?

Artigos Relacionados