Atualizando o MySQL 5.5 para o MySQL 5.6 no Ubuntu 14.04 LTS

17

Eu instalei meu LAMP com os seguintes comandos:

sudo apt-get update
sudo apt-get install apache2 apache2-suexec mysql-server php5-mysql
sudo mysql_secure_installation
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
sudo apt-get install phpmyadmin

Foi quase um ano atrás. Agora no PHPMyAdmin, vejo o seguinte:

Server: Localhost via UNIX socket
Server type: MySQL
Server version: 5.5.43-0ubuntu0.14.04.1 - (Ubuntu)
Protocol version: 10
Web server
Apache/2.4.7 (Ubuntu)
Database client version: libmysql - 5.5.43
PHP extension: mysqli Documentation

A versão do MySQL é 5.5.43-0ubuntu0.14.04.1 . Como posso com segurança e firmemente instalar e usar mysql 5.6.4+ como eu preciso usar FULLTEXTcom INNODB. Eu vejo os pacotes no repositório do Ubuntu, mas eu realmente deve evitar quaisquer problemas de conflito ou de instalação.

Obrigado por qualquer ajuda.

YahyaE
fonte

Respostas:

22

Como instalar com segurança

Sempre será complicado.

Por favor, leia a página de compatibilidade 5.5 / 5.6 antes de fazer qualquer coisa. Mente 1 grande diferença entre os 2:

Começando com o MySQL 5.6.6, vários parâmetros do servidor MySQL têm padrões diferentes das versões anteriores. A motivação para essas alterações é fornecer melhor desempenho imediato e reduzir a necessidade de o administrador do banco de dados alterar as configurações manualmente. Essas alterações estão sujeitas a uma possível revisão em versões futuras à medida que obtemos feedback.

Uma das grandes mudanças é que 5.5 usa 1 arquivo grande como log de transações e 5.6 usa vários:

Portanto, se você estiver atualizando uma instalação existente do MySQL, ainda não alterou os valores desses parâmetros dos padrões anteriores, e a compatibilidade com versões anteriores é uma preocupação, convém definir explicitamente esses parâmetros para os padrões anteriores. Por exemplo, coloque estas linhas no arquivo de opções do servidor:

 [mysqld] 
 innodb_file_per_table=0 
 innodb_checksum_algorithm=INNODB
 binlog_checksum=NONE

Se você usa replicação, preste atenção a esta parte do link:

Para atualizar os servidores usados ​​para replicação, atualize primeiro os escravos, depois o mestre. A replicação entre o mestre e seus escravos deve funcionar, desde que todos usem o mesmo valor de specific_defaults_for_timestamp:

Derrube os escravos, atualize-os, configure-os com o valor desejado de specific_defaults_for_timestamp e traga-os de volta.

Os escravos reconhecerão, no formato dos logs binários recebidos do mestre, que o mestre é mais antigo (antecede a introdução de specific_defaults_for_timestamp) e que as operações nas colunas TIMESTAMP provenientes do mestre usam o antigo comportamento do TIMESTAMP.

Desative o mestre, atualize-o e configure-o com o mesmo valor explícito_defaults_for_timestamp usado nos escravos, e traga-o de volta.

Se este for um servidor de produção, aconselho que tente primeiro fazer isso em uma máquina de teste. Tivemos uma transição bastante difícil do 5.5 para o 5.6 e optamos por instalar outra máquina instalada com o 5.6 e usar o mysldump para criar backups e carregá-los em nossos bancos de dados nessa máquina. Lembre-se de que isso levará muito tempo se você tiver um banco de dados grande (devido à recriação dos arquivos de transações do innodb).

Um método geral:

  • use o mysqldump para criar backups do seu banco de dados (usuários, estrutura trable e dados da tabela) e do seu arquivo de configuração (provavelmente /etc/mysql/my.cnf)
  • Remova 5.5. Após remover o 5.5, verifique se os arquivos de transações innodb foram removidos (ibdata1, ib_logfile0 e ib_logfile1). Como a versão 5.6 usa a melhor versão de transação, presumo que você também usaria isso ...
  • Instalar 5.6
  • Mude o novo arquivo de configuração e adicione o que você mudou para 5.5 (lembre-se do link acima e verifique se alguma das alterações se tornou inválida).
  • Carregue seu backup no 5.6 (primeiro usuários). Lembre-se de que isso pode demorar um pouco, pois irá recriar novos arquivos de transação.

Nos comandos (depois de fazer o backup):

sudo apt-get remove mysql-server
sudo apt-get autoremove
sudo apt-get install mysql-client-5.6 mysql-client-core-5.6
sudo apt-get install mysql-server-5.6
Rinzwind
fonte
2
Para sua informação, primeiro fiz um backup e depois sudo apt-get remove mysql-server;sudo apt-get autoremove;sudo apt-get install mysql-client-5.6 mysql-client-core-5.6;sudo apt-get install mysql-server-5.6
instalei
2
Parece bom sim: D Gratz! Lá eu editted-lo em ;-)
Rinzwind
Esse procedimento apaga os bancos de dados neste servidor?
Please_Dont_Bully_Me_SO_Lords
@EASI Não, mas a pergunta é ... ruim. Ao atualizar o mysql, você precisa criar um backup e restaurá-lo para que o mysql verifique se há funções / parâmetros / opções / configurações obsoletas.
Rinzwind 17/02