Question Installation de mysql-server après l'échec de mariadb


Utiliser Kubuntu 17.04. J'ai essayé d'installer mariadb, qui ne fonctionnait pas, alors j'essaie maintenant de revenir à mysql. Cependant, lorsque j'essaie d'installer mysql, cela ne fonctionne plus non plus:

~# apt-get install mysql-server
Reading package lists... Done
Building dependency tree       
Reading state information... Done
mysql-server is already the newest version (5.7.19-0ubuntu0.17.04.1).
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies.
 mysql-server : Depends: mysql-server-5.7 but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

Alors j'ai essayé la suggestion --fix-broken:

~# apt-get --fix-broken install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
  mysql-server-5.7
Suggested packages:
  tinyca
The following NEW packages will be installed
  mysql-server-5.7
0 to upgrade, 1 to newly install, 0 to remove and 0 not to upgrade.
5 not fully installed or removed.
Need to get 3,363 kB of archives.
After this operation, 50.0 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://gb.archive.ubuntu.com/ubuntu zesty-updates/main amd64 mysql-server-5.7 amd64 5.7.19-0ubuntu0.17.04.1 [3,363 kB]
Fetched 3,363 kB in 1s (3,049 kB/s)           
Preconfiguring packages ...
Selecting previously unselected package mysql-server-5.7.
(Reading database ... 304498 files and directories currently installed.)
Preparing to unpack .../mysql-server-5.7_5.7.19-0ubuntu0.17.04.1_amd64.deb ...
Failed to stop mysql.service: Unit mysql.service not loaded.
invoke-rc.d: initscript mysql, action "stop" failed.
invoke-rc.d returned 5
There is a MySQL server running, but we failed in our attempts to stop it.
Stop it yourself and try again!
dpkg: error processing archive /var/cache/apt/archives/mysql-server-5.7_5.7.19-0ubuntu0.17.04.1_amd64.deb (--unpack):
 subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing:
 /var/cache/apt/archives/mysql-server-5.7_5.7.19-0ubuntu0.17.04.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Suis un peu coincé maintenant. Quelqu'un peut-il m'aider à rétablir mon système?

Update: essayé d'exécuter les commandes suggérées, mais cela n'a pas résolu le problème:

~$ sudo service mysql stop
Failed to stop mysql.service: Unit mysql.service not loaded.

~$ sudo apt -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
  mysql-server-5.7
Suggested packages:
  tinyca
The following NEW packages will be installed
  mysql-server-5.7
0 to upgrade, 1 to newly install, 0 to remove and 5 not to upgrade.
5 not fully installed or removed.
Need to get 0 B/3,363 kB of archives.
After this operation, 50.0 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Preconfiguring packages ...
(Reading database ... 304498 files and directories currently installed.)
Preparing to unpack .../mysql-server-5.7_5.7.19-0ubuntu0.17.04.1_amd64.deb ...
Failed to stop mysql.service: Unit mysql.service not loaded.
invoke-rc.d: initscript mysql, action "stop" failed.
invoke-rc.d returned 5
There is a MySQL server running, but we failed in our attempts to stop it.
Stop it yourself and try again!
dpkg: error processing archive /var/cache/apt/archives/mysql-server-5.7_5.7.19-0ubuntu0.17.04.1_amd64.deb (--unpack):
 subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing:
 /var/cache/apt/archives/mysql-server-5.7_5.7.19-0ubuntu0.17.04.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

~$ sudo pkill mysqld
~$ sudo killall mysqld
mysqld: no process found

~$ sudo apt -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
  mysql-server-5.7
Suggested packages:
  tinyca
The following NEW packages will be installed
  mysql-server-5.7
0 to upgrade, 1 to newly install, 0 to remove and 5 not to upgrade.
5 not fully installed or removed.
Need to get 0 B/3,363 kB of archives.
After this operation, 50.0 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Preconfiguring packages ...
(Reading database ... 304498 files and directories currently installed.)
Preparing to unpack .../mysql-server-5.7_5.7.19-0ubuntu0.17.04.1_amd64.deb ...
Failed to stop mysql.service: Unit mysql.service not loaded.
invoke-rc.d: initscript mysql, action "stop" failed.
invoke-rc.d returned 5
There is a MySQL server running, but we failed in our attempts to stop it.
Stop it yourself and try again!
dpkg: error processing archive /var/cache/apt/archives/mysql-server-5.7_5.7.19-0ubuntu0.17.04.1_amd64.deb (--unpack):
 subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing:
 /var/cache/apt/archives/mysql-server-5.7_5.7.19-0ubuntu0.17.04.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

3
2017-08-16 05:34


origine


Utilisation sudo systemctl stop mysql pour l'arrêter. - George Udosen
Duplicata possible de Supprimer les bases de données MariaDB (MySQL) - George Udosen
Essayé ce lien, et cela n'a pas aidé non plus - Kees
quelle partie n'a pas fonctionné? - George Udosen


Réponses:


J'ai rencontré le même problème en essayant de mettre à niveau MySQL vers MariaDB sur Ubuntu 17.04 Il était impossible d’installer MariaDB car le script de post-installation pensait qu’il ne parvenait pas à démarrer le serveur (erreur de a été commencé). Il était impossible de revenir à MySQL car le script d'installation pensait qu'il ne pouvait pas arrêter le serveur même si c'était effectivement arrêté.

La désinstallation avec apt est difficile et exagérée car elle essaie de désinstaller tous les paquets en fonction des bibliothèques de clients MySQL.

Voici ma solution pour revenir à MySQL, puis effectuer une mise à niveau vers MariaDB.

1) Détecter tous les paquets MariaDB et MySQL

apt search mariadb | grep "\[install"

et

apt search mysql | grep "\[install"

2) Forcer la désinstallation de tous les paquets MariaDB et MySQL (serveur, client, libs) pour nettoyer le désordre

sudo dpkg --force depends --purge <package> <package> ...

3) Nettoyer les données restantes dans / etc et / var / lib / mysql

NB: J'ai d'abord essayé d'installer MariaDB ou MySQL avec mes fichiers de configuration et de données mais j'ai échoué à chaque fois.

sudo rm -rf /var/lib/mysql* /etc/mysql

Si vous voulez vous en tenir à MySQL et que vous n'avez pas de copie de / var / lib / mysql dans /var/lib/mysql-5.7 depuis la première tentative de mise à jour de MariaDB, déplacez simplement / var / lib / mysql / var /lib/mysql-5.7 au lieu de le supprimer.

4) Fixer le système

sudo apt-get --fix-broken install
sudo apt autoremove
sudo reboot

5) Récupérer les données MySQL

L'installation --fix-broken avait réinstallé un MySQL propre (pas un MariaDB car Ubuntu semble l'apprécier de cette façon).

sudo service mysql stop
mv /var/lib/mysql*5.7 /var/lib/mysql
sudo service mysql start

Si vous voulez aller à l'étape 6, vous devriez sauvegarder toutes vos bases de données maintenant.

6) Enfin mettre à niveau vers MariaDB

Si vous avez déjà des sauvegardes, vous pouvez ignorer l'étape 5.

sudo apt-get install mariadb-server

Oui, c'est ce que j'ai essayé au début, mais cette fois Ça marche! Vous pouvez recréer les utilisateurs de votre base de données, puis restaurer vos bases de données, car MariaDB ne souhaite pas mettre à niveau les bases de MySQL 5.7.


5
2017-08-21 19:07



Si le démarrage de mariadb échoue avec timeout, voir: askubuntu.com/questions/750604/… - ChrisAga