Como atualizar MySQL 5.5 para 5.6/5.7 ou MariaDB 5.5 para 10.x no Linux?
Çap et- MariaDB, MySQL, Atualizar
- 24
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.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 |
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.0mariadb101
for MariaDB v10.1mariadb102
for MariaDB v10.2mariadb103
for MariaDB v10.3mariadb104
for MariaDB v10.4mariadb105
for MariaDB v10.5mariadb106
for MariaDB v10.6mysql55
for MySQL v5.5mysql56
for MySQL v5.6mysql57
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.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/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 |
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.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/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 |