Définition: confiance - Quelque chose que les emballeurs Ubuntu LTS ont perdu de moi.
J'ai scrupuleusement entretenu mon serveur Web 14.04 LTS. Il n'avait que quatre fonctions principales (ssh, ftp, http et mysql (à utiliser par les pages Web)). Avant de commencer ma mise à niveau de version de 14.04 à 16.04, je me suis assuré que les deux
Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get dist-upgrade
pour être absolument certain que j'avais les derniers paquets 14.04 avant d'essayer de mettre à jour la version. Une fois cela fait, et le système a été redémarré (et exécuté à nouveau les commandes ci-dessus, pour être sûr qu'ils ne voient rien de nouveau), juste pour être sûr, j'ai lancé 'Sudo do-release-upgrade -d' à partir de 14.04 à 16.04.
Tout ce que nous avons fait sans problème des deux systèmes précédents a été mis à niveau de la même manière, mais la mise à niveau du serveur Web a été suspendue pendant la partie mysql et elle semble avoir détruit toute possibilité pour moi d'exécuter mysql sur le système. Période.
D'après ce que j'ai lu, il est FORTEMENT recommandé aux utilisateurs de mettre à jour mysql 5.5-> 5.6-> 5.7, car passer directement de 5.5 à 5.7 peut entraîner des problèmes de compatibilité des tables. Malheureusement, mon serveur Web (entièrement à jour, rappelez-vous) fonctionnait toujours avec mysql-5.5.
J'ai des copies de/var/lib/mysql que j'ai capturées alors que do-release-upgrade était bloqué, mais mysql-5.7 ET mysql-5.6 refusent tous deux de les utiliser. Il semble impossible d'installer mysql-5.5 sur Ubuntu 16.04 afin de naviguer manuellement dans les versions. J'ai essayé de récupérer les paquets sur le site web mysql, mais je ne peux y trouver que mysql-server, pas -client, -common ou autre chose.
Ainsi, la mise à niveau de 14.04 à 16.04 semble avoir détruit ma base de données. Oui, je sais, le fait que je n’ai pas de sauvegarde actuelle est de ma faute, mais après deux mises à niveau sans faille, et sous une date limite (qui s’est évaporée, la base de données semblant avoir disparu pour de bon, maintenant), j’étais trop à l’aise - j'avais confiance dans les personnes qui ont construit la mise à niveau. Je sais que je devrais vérifier à l'avance pour tout ce qui pourrait casser mais, honnêtement, je pensais que c'était le travail du conditionneur. Dire que le client doit vérifier tout, c'est comme dire qu'une voiture achetée devrait la démonter et que chaque pièce devrait être vérifiée pour s'assurer qu'elle ne présentait aucun défaut - cela ne se produira pas.
S'il y a un moyen de revenir à mysql 5.5 sur Ubuntu 16.04 afin que je puisse exécuter la procédure de mise à jour CORRECT/RECOMMANDÉE (par mysql), veuillez me le faire savoir. Si non, est-ce que quelqu'un connaît un bon groupe de thérapie de cri primal dans le centre de la Floride?
MISE À JOUR: J'ai réussi à remettre la base de données en état de fonctionner en construisant un serveur virtuel 14.04 et en réparant/reconstruisant les fichiers de la base de données. J'ai mis à jour avec succès le mysql virtuel 14.04 de 5.5 à 5.6. Ensuite, je dois savoir ce que je dois faire pour être sûr que la mise à niveau 5.6 à 5.7 fonctionne.
MISE À JOUR 2: Malgré les réprimandes, j'ai réussi à faire fonctionner ma base de données réparée sous mysql 5.6 sur le système mis à nivea. Maintenant, je reçois des erreurs parce que PHP le support de MySQL n'est pas installé. Ce sont peut-être de petits pas, mais c'est est progrès!
Mise à jour 3: SUCCESS! Je réinstalle tous les paquets php7/mysql et je m'assure que mon application Web utilise le type de base de données mysqli et le tour est joué! Je pense que je vais rester à mysql 5.6 pendant un certain temps, cependant. Jusqu'à ce que je sois un peu plus à l'aise avec le chemin de mise à niveau vers la version 5.7.x. Espérons que cela puisse donner un récit édifiant à d'autres personnes comme moi, mais si elles sont trop semblables à moi, elles ne le verront pas avant qu'il ne soit trop tard.
Cela est dû au fait que la mise à niveau de 14.04 à 16.04 entraîne une mise à niveau de mysql non prise en charge (5.5 -> 5.7), qui n'est pas un chemin de mise à niveau pris en charge, comme documenté par mysql . La solution la plus simple consiste à mettre à niveau mysql vers la version 5.6 tout en restant inférieur à 14.04 . Vous y parvenez en premier (bien sûr!) En vidant toutes vos bases de données;
mysqldump --lock-all-tables -u root -p --all-databases > backup.sql
puis passer à mysql 5.6;
apt-get install mysql-server-5.6 mysql-client-5.6 mysql-server-core-5.6 mysql-client-core-5.6
De cette façon, toutes vos bases de données sont mises à niveau sur place et (sur mes machines jusqu’à présent) en toute sécurité et de manière transparente à 5.6. Le seul problème après la mise à niveau peut être les entrées TIMESTAMP. Maintenant, après la mise à jour de la version de sortie, mysql est toujours laissé à 5.6 et les problèmes concernant la mise à niveau non prise en charge de la version 5.5 directement à la version 5.7 pendant la mise à niveau ne sont jamais au rendez-vous.