web-dev-qa-db-fra.com

Pourquoi l'installation de MySQL 5.6 sur Ubuntu 14.04 a-t-elle échoué?

Par curiosité, je voulais jeter un œil à MySQL 5.6 sur Ubuntu 14.04. Et sur la base de cet article , il semblait que l’installation devrait être simple et directe. J'ai donc lancé un micro serveur AWS EC2 exécutant Ubuntu 14.04 (64 bits), connecté à mon instance vierge (via PuTTY) et émis les commandes suivantes:

$ Sudo apt-get update
$ Sudo apt-get build-dep mysql-server-5.6
$ Sudo apt-get install mysql-server-5.6

(Les deux premières commandes étaient des mouvements désespérés, car exécuter apt-get install seul n’avait pas fonctionné auparavant. Mais même avec les trois commandes, l’installation n’a toujours pas fonctionné.)

Au point où je m'attendais, d'après l'article mentionné ci-dessus, à voir cette sortie de la commande finale:

mysql start/running, process 2355  
Setting up libhtml-template-Perl (2.95-1) ...  
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...  
Processing triggers for libc-bin (2.19-0ubuntu6) ...  
Processing triggers for ureadahead (0.100.0-16) ...  

J'ai eu ceci à la place:

start: Job failed to start  
invoke-rc.d: initscript mysql, action "start" failed.  
dpkg: error processing package mysql-server-5.6 (--configure):  
 subprocess installed post-installation script returned error exit status 1  
Setting up libhtml-template-Perl (2.95-1) ...  
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...  
Processing triggers for libc-bin (2.19-0ubuntu6) ...  
Processing triggers for ureadahead (0.100.0-16) ...  
Errors were encountered while processing:  
 mysql-server-5.6  
E: Sub-process /usr/bin/dpkg returned an error code (1)

Quelqu'un peut-il voir ce qui s'est mal passé?

30
WebLearner

Le problème que vous rencontrez a le même aspect que ce rapport de bogue . L'échec du démarrage semble être dû au fait que la configuration par défaut de MySQL 5.6 nécessite plus de mémoire que ce qu'elle peut obtenir dans votre micro-instance.

La solution à l'erreur semble être l'une des suivantes:

  • Augmentez la quantité de mémoire dans votre instance EC2
  • Définissez une valeur plus petite pour la variable max_connections de MySQL
22
Mike Miller

J'ai rencontré le même problème lorsque je lance mon petit VPS. Le problème est causé par une petite mémoire. Ainsi, sans dépenser plus d'argent pour augmenter la mémoire dont vous n'avez pas besoin, vous pouvez simplement créer des fichiers d'échange pour faciliter l'installation. Oui, l'échange est lent, mais tout ce dont vous avez besoin est de terminer l'installation.

Sur Ubuntu 14.04, je fais ce qui suit pour résoudre le problème:

Créez un fichier d'échange 4G:

Sudo fallocate -l 4G /swapfile

Changer son autorisation en root uniquement pourrait accéder et changer:

Sudo chmod 600 /swapfile

Faites-le échanger:

Sudo mkswap /swapfile

Activer:

Sudo swapon /swapfile

Maintenant, vous pouvez essayer d'installer à nouveau MySQL, il devrait réussir cette fois. Rappelez-vous simplement de supprimer la précédente installation qui a échoué avant de le faire.

24
Arthur Wang

J'ai rencontré le même problème. Bien que j'aie eu la mémoire assez grande 12Gb donnée à ma VM, mais les choses échouaient toujours comme dans la question. Après avoir passé un certain temps, il manquait à apt get certains des packages de traduction de configuration et de traduction d’outil.

Le référentiel MySQL apt offre un moyen simple et pratique d’installer et de mettre à jour les produits MySQL avec les derniers packages logiciels utilisant apt-get. Voici ce que vous devez suivre:

  1. Ajout du référentiel MySQL APT _ Tout d'abord, ajoutez le référentiel MySQL apt à la liste des référentiels de logiciels de votre système. Suivez ces étapes:

    • Accédez à la page de téléchargement du référentiel MySQL apt à l’adresse http://dev.mysql.com/downloads/repo/apt/ .

    • Sélectionnez et téléchargez le package de version.

    • Installez le package de version téléchargé à l'aide de la commande suivante, en remplaçant le nom de package spécifique à la version par le nom du package téléchargé (précédé de son chemin, si vous n'exécutez pas la commande dans le dossier contenant le package):

      Sudo dpkg -i /PATH/version-specific-package-name.deb
      

    Notez que le même paquet fonctionne sur toutes les plateformes Debian et Ubuntu prises en charge.

    • Lors de l'installation du paquet, il vous sera demandé de choisir les versions du serveur MySQL et des autres composants (par exemple, MySQL Workbench) que vous souhaitez installer. Si vous ne savez pas quelle version choisir, ne modifiez pas les options par défaut sélectionnées pour vous. Vous pouvez également choisir aucun si vous ne voulez pas qu'un composant particulier soit installé. Après avoir fait les choix pour tous les composants, choisissez OK pour terminer la configuration et l’installation du package de version.

    vous pouvez toujours modifier vos choix pour les versions ultérieures;
    voir Sélection d’une version majeure de la version pour obtenir des instructions.

    • Mettez à jour les informations sur le paquet à partir du référentiel MySQL APT à l'aide de la commande suivante (cette étape est obligatoire):

      Sudo apt-get update
      
  2. Installer MySQL avec APT

    • Installez MySQL avec la commande suivante:

      Sudo apt-get install mysql-server
      

Cela installe le paquet pour le serveur MySQL, ainsi que les paquets pour le client et pour les fichiers communs de la base de données.

Lors de l’installation, les boîtes de dialogue lancent deux demandes: Indiquez un mot de passe pour l’utilisateur root pour votre installation MySQL.

  1. Démarrer et arrêter le serveur MySQL

Le serveur MySQL est démarré automatiquement après l'installation. - Vous pouvez vérifier l'état du serveur MySQL avec la commande suivante:

Sudo service mysql status
  • Arrêtez le serveur MySQL avec la commande suivante:

    Sudo service mysql stop
    
  • Pour redémarrer le serveur MySQL, utilisez la commande suivante:

    Sudo service mysql start
    

J'ai suivi ceci http://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install . Cela a fonctionné correctement et a téléchargé tous les packages et installé avec succès mysql 5.6.

3
Ritesh

Dans mon cas j'ai ajouté

innodb_buffer_pool_size = 20M

au /etc/mysql/my.cnf

2
maxkoryukov

La désactivation de performance_schema permet également d’économiser beaucoup de mémoire. Ma base de données vide allant de 400m à 40m au démarrage:

performance_schema=0

MySQL Docs: http://dev.mysql.com/doc/refman/5.6/en/performance-schema.html

1
dannrob

J'ai rencontré ce problème sur Ubuntu 15.10. Pour moi, ce n'était pas un problème de mémoire (j'ai 2 Go de RAM et 18 Go de swap, dont seulement environ 300 Mo ont été utilisés au total).

Dans mon cas, dpkg cherchait /etc/mysql/conf.d, ce qui n’existait pas (ce que /etc/mysql/mysql.conf.d a fait!). La réinstallation de mysql et la création manuelle du dossier /etc/mysql/conf.d ont résolu mon problème.

Comment cela s'est-il passé exactement? Je n'ai aucune idée. J'ai failli ne pas vouloir partager ma réponse, car je parie que cette solution est spécifique à mon ordinateur.

J'ai résolu ce problème en utilisant l'utilitaire strace, ce qui est fantastique pour ce genre de chose, même s'il est incroyablement détaillé.

Je l'ai utilisé comme ça:

  • Après avoir appuyé sur ctrlc À mi-chemin de apt-get install mysql-server, j’ai dû exécuter dpkg --configure -a pour terminer l’installation.

  • J'ai couru strace 2>/tmp/trace dpkg --configure -a. Cela m'a fait un beau journal strace à /tmp/trace.

  • J'ai regardé à travers le journal, particulièrement en bas, où il a échoué.

  • J'ai remarqué qu'il essayait d'accéder à /etc/mysql/conf.d et que le code d'erreur ENOENT, , ne contenait aucun fichier ni répertoire .

Pour tous ceux qui souhaitent tenter leur chance, exécutez strace 2>/tmp/trace (command) et grep pour ENOENT. Comme je l'ai dit, cette solution est probablement spécifique à mon ordinateur, mais vous voudrez peut-être essayer.

1
apricot boy

Dans mon cas, tout ce que j'avais à faire était de modifier my.cnf et de simplement supprimer 2 fichiers journaux nommés ib_logfile0 et ib_logfile1, puis de démarrer mysql.

service mysql start

Pas besoin de réinstaller mysql, il suffit de supprimer ces 2 fichiers journaux et de redémarrer le serveur mysql

Ci-dessous les modifications que j'ai apportées à my.cnf:

max_connections     = 1000     
max_allowed_packet  = 1024M
wait_timeout        = 7200 
0
Lavina Chitara