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é?
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:
max_connections
de MySQLJ'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.
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:
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.
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
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.
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
.
Dans mon cas j'ai ajouté
innodb_buffer_pool_size = 20M
au /etc/mysql/my.cnf
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
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.
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