Comment puis-je mettre à jour MySQL dans Debian en utilisant apt-get?

J'utilise la machine virtuelle Turnkey Linux. La version de Debian est apparemment sur le path de mise à jour "Wheezy" (si c'est comme ça que vous l'appelez). Je ne suis pas complètement à l'aise avec Linux, comme vous pouvez le voir.

J'ai besoin de nouvelles fonctionnalités que MySQL 5.6 propose, alors que mon installation actuelle est MySQL 5.5.35. Je voudrais get la dernière version (5.6.17 à partir de cette publication) ou au less un 5.6.x.

J'ai essayé apt-get update , apt-get upgrade , apt-get dist-upgrade . Ceux-ci ont mis à jour un tas de choses avec succès, mais aucun n'était MySQL. J'ai essayé apt-get upgrade mysql-server , qui dit que j'ai déjà la dernière version.

Une list de repository de packages Debian Wheezy sur le Web montre MySQL 5.5 et rien d'autre, quand j'ai besoin de 5.6. J'ai ensuite lu quelque chose à propos des «rétroportages», qui semblent pouvoir me procurer des choses que mon propre Debian n'est pas censé avoir – mais je n'arrive pas à le faire fonctionner. Il faut append des lignes à /etc/apt/sources.list.d/sources.list . Lorsque j'essaie de faire cela, puis en exécutant la apt-get update , j'obtiens 404 erreurs.

J'ai également essayé plusieurs autres routes, l'une étant en train de comstackr le téléchargement de MySQL à la vanille, que j'ai échoué misérablement et que je n'essaierais plus d'essayer.

Je suis franchement déconcerté par la façon dont cela se fait. La plupart des URL répertoriées sur les forums / blogs pour apt-get , et même pour wget , semblent mourir peu de time après leur publication, donc je ne peux pas comprendre comment on peut find la bonne information. J'ai essayé de faire cela pendant deux jours maintenant et je ne peux pas aller n'importe où.

Donc, en supposant que vous ayez lu jusqu'ici, j'aimerais savoir si quelqu'un a un moyen quelconque de mettre à jour MySQL dans Debian d'une manière relativement indolore et automatisée (une où je n'aurais pas à utiliser make ou exporter / importer mes bases de données et configs actuelles manuellement).

Rebuild les sources expérimentales 5.6 MySQL de expérimental sur Wheezy est facile à la limite de sortingvial. Cependant, vous aurez besoin de beaucoup d'espace disque; Une fois la construction terminée, le directory de construction utilisait 5,2 Go. En outre, il faut un certain time pour build, et exécute un nombre incroyable de tests. Je n'ai pas pris la peine de le chronométrer, mais prévoyez quelques heures. Il est possible de désactiver les tests, mais je suggère de les laisser courir – c'est inoffensif tant qu'ils passent. Ils l'ont fait sur ma machine. Les bonnes nouvelles sont que j'ai été capable de build et installer sans histoires. J'ai couru le test de base suivant.

 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> 

Donc, je peux me connecter au server au less. Voici à quoi ressemblent les packages installés:

 $ 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, eg /etc/mysql/my.cnf ii mysql-common-5.6 5.6.16-1~exp1 all MySQL 5.6 specific common files, eg /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 

Voici une ventilation des étapes.

  1. Si vous avez l'un des packages Wheezy MySQL 5.5 installés, supprimez-les, ils ne causeront que des problèmes plus tard. S'il y a des packages qui dépendent de ceux-ci, ils devront y aller aussi.
  2. D'abord, récupérez les sources. Vous devez append ce qui suit (ou similaire, ajuster pour votre server préféré) à /etc/apt/sources.list :

     deb-src http://debian.lcs.mit.edu/debian/ experimental main non-free consortingb 
  3. Ajoutez également ce qui suit dans /etc/apt/preferences .

     Package: * Pin: release a=experimental Pin-Priority: 1 
  4. Puis courez

     apt-get update 
  5. Puis courez

     apt-get source mysql-5.6 

    dans un directory approprié. Je crée généralement un directory dans /usr/local/src ,
    dans ce cas, dites /usr/local/src/mysql .

  6. Puis cd dans /usr/local/src/mysql .

  7. Courir

     sudo apt-get build-dep mysql-5.6 

    Sur ma machine cela a installé quelques packages.

  8. Installez quelques packages de base pour la construction.

     apt-get install build-essential devscripts fakeroot 

    Puis cd dans le directory source résultant /usr/local/src/mysql/mysql-5.6- 5.6.16 et exécutez

     debuild -uc -us 

    Cela prendra un certain time pour build. Dans certains cas, c'est une bonne idée d'incrémenter
    le numéro de version, mais ce n'est pas vraiment nécessaire ici. comme il est peu probable qu'un autre package MySQL 5.6 fasse son path dans Wheezy.

    Si vous ne souhaitez pas exécuter les tests, vous pouvez utiliser

     DEB_BUILD_OPTIONS="nocheck" debuild -uc -us 
  9. Maintenant, vous devriez installer libdbd-mysql-perl, qui est une dépendance à l'exécution des packages mysql.

      apt-get install libdbd-mysql-perl 
  10. Ensuite, montez un niveau vers /usr/local/src/mysql . Il devrait y avoir quelques packages de deb là. Vous voudrez installer au less

      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 

    Cela peut être fait par exemple en exécutant:

      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 

Actuellement, la meilleure option est d'utiliser le repo officiel MySQL APT qui permet d'installer apt-get upgrade .

Tous testés Amusez-vous.

  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. http://downloads.mysql.com/archives/mysql-5.6/mysql-5.6.16-debian6.0-x86_64.deb
  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 racine.
  12. chown -R données 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. service mysql start
  18. ./bin/mysql_secure_installation