Como posso atualizar o MySQL no Debian usando o apt-get?

12

Estou usando a máquina virtual Turnkey Linux. A versão do Debian está aparentemente no caminho de atualização "Wheezy" (se é assim que você chama). Eu não estou completamente confortável com o Linux, como você pode ver.

Eu preciso de alguns novos recursos que o MySQL 5.6 ofereça, enquanto minha instalação atual é o MySQL 5.5.35. Eu gostaria de obter a versão mais recente (5.6.17 a partir desta postagem) ou pelo menos qualquer 5.6.x.

Eu tentei apt-get update , apt-get upgrade , apt-get dist-upgrade . Estes atualizaram um monte de coisas com sucesso, mas nenhum foi o MySQL. Eu tentei apt-get upgrade mysql-server , que diz que eu já tenho a versão mais recente.

Uma lista de repositórios de pacotes do Debian Wheezy na web mostra o MySQL 5.5 e nada mais, quando eu preciso do 5.6. Então eu li algo sobre "backports", o que soa como se ele fosse capaz de me fazer coisas que meu Debian em particular ainda não deveria ter - mas eu não consigo fazê-lo funcionar. Isso requer a adição de linhas a /etc/apt/sources.list.d/sources.list . Quando tento fazer isso, então, executando apt-get update , recebo erros 404.

Eu também experimentei várias outras rotas, uma delas compilando o download do MySQL, que falhei miseravelmente e prefiro não tentar novamente.

Estou positivamente confuso sobre como isso é feito. A maioria dos URLs listados em fóruns / blogs para apt-get , e até mesmo para wget , parecem morrer logo após serem postados, então não consigo entender como alguém consegue encontrar as informações certas. Eu tenho tentado fazer isso por dois dias seguidos e não posso chegar a lugar nenhum.

Então, supondo que você tenha lido até aqui, eu adoraria saber se alguém tem alguma maneira de atualizar o MySQL no Debian de alguma forma automatizada relativamente indolor (onde eu não teria que usar make ou export / import meus bancos de dados e configurações atuais manualmente).

    
por equazcion 18.04.2014 / 06:36

3 respostas

4

Reconstruindo as fontes 5.6 experimentais do MySQL a partir de experimental no wheezy é fácil na fronteira com trivial. No entanto, você precisará de muito espaço em disco; depois que a construção foi concluída, o diretório de construção estava usando 5,2 GB. Além disso, demora um pouco para construir e executa um número incrível de testes. Eu não me preocupei em marcar, mas permiti algumas horas. É possível desativar os testes, mas sugiro que eles sejam executados - é inofensivo, desde que eles passem. Eles fizeram na minha máquina. A boa notícia é que consegui construir e instalar sem problemas. Eu corri o seguinte teste básico.

faheem@orwell:~$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 50
Server version: 5.6.16-1~exp1 (Debian)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

Então, posso me conectar ao servidor pelo menos. Aqui está o que os pacotes parecem instalados:

$ dpkg -l | grep mysql

ii  libdbd-mysql-perl                     4.021-1+b1              amd64                   Perl5 database interface to the MySQL database
ii  libmysqlclient18:amd64                5.5.35+dfsg-0+wheezy1   amd64                   MySQL database client library
ii  libqt4-sql-mysql:amd64                4:4.8.2+dfsg-11         amd64                   Qt 4 MySQL database driver
ii  mysql-client-5.6                      5.6.16-1~exp1           amd64                   MySQL database client binaries
ii  mysql-client-core-5.6                 5.6.16-1~exp1           amd64                   MySQL database core client binaries
ii  mysql-common                          5.5.35+dfsg-0+wheezy1   all                     MySQL database common files, e.g. /etc/mysql/my.cnf
ii  mysql-common-5.6                      5.6.16-1~exp1           all                     MySQL 5.6 specific common files, e.g. /etc/mysql/conf.d/my-5.6.cnf
ii  mysql-server-5.6                      5.6.16-1~exp1           amd64                   MySQL database server binaries and system database setup
ii  mysql-server-core-5.6                 5.6.16-1~exp1           amd64                   MySQL database server binaries
ii  python-mysqldb                        1.2.3-2                 amd64                   Python interface to MySQL

Aqui está um detalhamento das etapas.

  1. Se você tiver algum dos pacotes do MySQL 5.5 instalados, remova-os, eles só causarão problemas mais tarde. Se houver algum pacote que depende deles, eles também terão que ir.
  2. Primeiro, pegue as fontes. Você precisa adicionar o seguinte (ou semelhante, ajuste para o seu servidor preferido) para /etc/apt/sources.list :

    deb-src http://debian.lcs.mit.edu/debian/ experimental main non-free contrib
    
  3. Adicione também o seguinte a /etc/apt/preferences .

    Package: *
    Pin: release a=experimental
    Pin-Priority: 1
    
  4. Em seguida, execute

    apt-get update
    
  5. Em seguida, execute

    apt-get source mysql-5.6
    

    em algum diretório adequado. Eu costumo criar um diretório em /usr/local/src ,
    neste caso, digamos /usr/local/src/mysql .

  6. Em seguida, copie para /usr/local/src/mysql .

  7. Executar

    sudo apt-get build-dep mysql-5.6
    

    Na minha máquina, isso instalou alguns pacotes.

  8. Instale alguns pacotes básicos para construção.

    apt-get install build-essential devscripts fakeroot
    

    Em seguida, digite cd no diretório de origem resultante /usr/local/src/mysql/mysql-5.6- 5.6.16 e execute

    debuild -uc -us
    

    Isso vai demorar um pouco para construir. Em alguns casos, é uma boa ideia incrementar o número da versão, mas não é realmente necessário aqui. como é improvável qualquer outro pacote do MySQL 5.6 entrará no wheezy.

    Se você não quiser executar os testes, poderá usar

    DEB_BUILD_OPTIONS="nocheck" debuild -uc -us
    
  9. Agora você deve instalar libdbd-mysql-perl, que é uma dependência de tempo de execução dos pacotes mysql.

     apt-get install libdbd-mysql-perl
    
  10. Em seguida, aumente um nível para /usr/local/src/mysql . Deve haver algum  pacotes deb lá. Você vai querer instalar pelo menos

     mysql-client-core-5.6_5.6.16-1~exp1_amd64.deb         
     mysql-common-5.6_5.6.16-1~exp1_all.deb           
     mysql-server-5.6_5.6.16-1~exp1_amd64.deb
     mysql-client-5.6_5.6.16-1~exp1_amd64.deb  
     mysql-server-core-5.6_5.6.16-1~exp1_amd64.deb
    

    Isso pode ser feito, por exemplo, executando:

     dpkg -i mysql-client-core-5.6_5.6.16-1~exp1_amd64.deb         
     mysql-common-5.6_5.6.16-1~exp1_all.deb           
     mysql-server-5.6_5.6.16-1~exp1_amd64.deb
     mysql-client-5.6_5.6.16-1~exp1_amd64.deb  
     mysql-server-core-5.6_5.6.16-1~exp1_amd64.deb
    
por 18.04.2014 / 19:32
6

Atualmente, a melhor opção é usar o repositório de APT do MySQL oficial que permite a instalação de apt-get upgrade .

    
por 26.09.2014 / 11:36
1

Tudo testado Divirta-se.

  1. .apt-get install libaio1
  2. groupadd mysql
  3. useradd -r -g mysql mysql
  4. wget -O mysql-5.6.16-debian6.0-x86_64.deb
  5. link
  6. dpkg -i mysql-5.6.16-debian6.0-x86_64.deb
  7. cd / usr / local
  8. ln -s /opt/mysql/server-5.6 mysql
  9. cd mysql
  10. scripts / mysql_install_db --user = mysql
  11. chown -R root.
  12. chown -R dados do mysql
  13. cp support-files / mysql.server /etc/init.d/mysql
  14. mkdir -p /etc/mysql/conf.d /
  15. cp my.cnf / etc / mysql /
  16. echo $ '! include /etc/mysql/my.cnf\n!includedir /etc/mysql/conf.d/' > my.cnf
  17. serviço mysql start
  18. ./ bin / mysql_secure_installation
por 18.04.2014 / 06:54