0

I have 2 updates that could not be installed automatically.

When I try to upgrade with: sudo apt upgrade then I got this message:

The following packages have been kept back: mysql-client mysql-server

So when I try to install it manually like: sudo apt install mysql-client then I got the following message:

The following packages have unmet dependencies: 
mysql-common : Conflicts: mysql-client-8.0 but 8.0.31-0ubuntu0.22.04.1 is to be installed 
               Conflicts: mysql-client-core-8.0 but 8.0.31-0ubuntu0.22.04.1 is to be installed 
E: Unable to correct problems, you have held broken packages.

and when I try to install: sudo apt install mysql-server

I got this message:

The following packages have unmet dependencies: 
mysql-common : Conflicts: mysql-server-8.0 but 8.0.31-0ubuntu0.22.04.1 is to be installed
mysql-community-client : Conflicts: mysql-server-8.0 but 8.0.31-0ubuntu0.22.04.1 is to be installed 
mysql-server-8.0 : Depends: mysql-client-8.0 (>= 8.0.31-0ubuntu0.22.04.1) but it is not installable 
                   Depends: mysql-server-core-8.0 (= 8.0.31-0ubuntu0.22.04.1) but it is not installable 
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

It is on a production server and if it is possible not to delete everything and reinstall mysql without losing my configuration and/or deleting the databases.

Update:

Output of ~$ apt-cache policy mysql-client-8.0

mysql-client-8.0:
  Installed: (none)
  Candidate: 8.0.31-0ubuntu0.22.04.1
  Version table:
     8.0.31-0ubuntu0.22.04.1 500
        500 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages
     8.0.28-0ubuntu4 500
        500 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu jammy/main amd64 Packages

Output of ~$ apt-cache policy mysql-server-core-8.0

mysql-server-core-8.0:
  Installed: (none)
  Candidate: 8.0.31-0ubuntu0.22.04.1
  Version table:
     8.0.31-0ubuntu0.22.04.1 500
        500 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages
     8.0.28-0ubuntu4 500
        500 http://eu-west-1.ec2.archive.ubuntu.com/ubuntu jammy/main amd64 Packages

Output of ~$ sudo apt upgrade

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
#
# News about significant security updates, features and services will
# appear here to raise awareness and perhaps tease /r/Linux ;)
# Use 'pro config set apt_news=false' to hide this and future APT news.
#
The following packages have been kept back:
  mysql-client mysql-server
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
Artur Meinild
  • 31,035

2 Answers2

2

The clue is in this error message

mysql-community-client : Conflicts: mysql-server-8.0 but 8.0.31-0ubuntu0.22.04.1 is to be installed 

You have the package mysql-community-client installed. This is a command line client that has the same purpose as the package mysql-client but (I believe) falls under a different license.

Nevertheless, its presence causes the server install to fail. So simply remove it, and retry to install the server.

Afterwards, make sure you have one MySQL client installed at all times for basic maintenance, be it mysql-client or mysql-communit-client.

Jos
  • 30,529
  • 8
  • 89
  • 96
0

This worked for me (zabbix 6.2.7 Ubuntu 22.04).

sudo apt purge mysql-community-client  
sudo apt purge  mysql-common  
sudo apt install mysql-client  
sudo apt install zabbix-server-mysql  

Set mysql password at /etc/zabbix/zabbix_server.conf .

Reboot server.

karel
  • 122,292
  • 133
  • 301
  • 332