My first attempts at doing this involved removing the APT repository for MariaDB and adding one for Percona DB:
Trying to install percona-server-server-5.1 and percona-server-client-5.1 with libmysql16 didn’t work. The command complained that there were unmet dependencies: mysql-common. According to Bug #877018, an install of the Percona Server version of libmysql16 was needed.
Turns out that my version of libmysql16 was a MariaDB version, not a Percona version – and the Percona version wasn’t to be installed:
# apt-cache policy libmysqlclient16 libmysqlclient16: Installed: 5.1.62-mariadb115~lucid Candidate: 5.1.62-mariadb115~lucid Version table: *** 5.1.62-mariadb115~lucid 0 100 /var/lib/dpkg/status 5.1.61-rel13.2-430.lucid 0 500 http://repo.percona.com/apt/ lucid/main Packages 5.1.61-0ubuntu0.10.04.1 0 500 http://192.168.6.162/ubuntu/ lucid-updates/main Packages 500 http://192.168.6.162/ubuntu/ lucid-security/main Packages 5.1.41-3ubuntu12 0 500 http://192.168.6.162/ubuntu/ lucid/main Packages
Forcing the install of the proper version of libmysql16 took care of that:
# apt-get --reinstall install libmysqlclient16=5.1.61-rel13.2-430.lucid Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: libevent-1.4-2 Use 'apt-get autoremove' to remove them. The following packages will be REMOVED: libmariadbclient16 The following packages will be DOWNGRADED: libmysqlclient16 0 upgraded, 0 newly installed, 1 downgraded, 1 to remove and 3 not upgraded. Need to get 3,691kB of archives. After this operation, 6,259kB of additional disk space will be used. Do you want to continue [Y/n]? y WARNING: The following packages cannot be authenticated! libmysqlclient16 Install these packages without verification [y/N]? y Get:1 http://repo.percona.com/apt/ lucid/main libmysqlclient16 5.1.61-rel13.2-430.lucid [3,691kB] Fetched 3,691kB in 16s (231kB/s) (Reading database ... 100664 files and directories currently installed.) Removing libmariadbclient16 ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place dpkg: warning: downgrading libmysqlclient16 from 5.1.62-mariadb115~lucid to 5.1.61-rel13.2-430.lucid. (Reading database ... 100657 files and directories currently installed.) Preparing to replace libmysqlclient16 5.1.62-mariadb115~lucid (using .../libmysqlclient16_5.1.61-rel13.2-430.lucid_i386.deb) ... Unpacking replacement libmysqlclient16 ... Setting up libmysqlclient16 (5.1.61-rel13.2-430.lucid) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place
However, there were parts of the MySQL installation that were not accounted for by the removal of MariaDB nor by the installation of Percona Server. Removing these would also remove everything that depended on MySQL server – and Percona Server could not be installed until they were removed. I took care of this impasse by incorporating them into a single `apt-get` command using the syntax to remove and add packages at the same time (note the plus and minus package suffixes):
apt-get install mysql-client-core-5.1- percona-server-client-5.1+ percona-server-server-5.1+ mysql-server-core-5.1-
After a copious amount of output, this final command took care of everything: Percona Server was live. I restarted things that might have broken with MySQL going down and all was well with Percona Server 5.1.