49

The answers to related questions forget to:

  • remove the MySQL databases
  • remove the mysql user
  • remove the logs in /var/log

How do I uninstall MySQL completely?

112

Building off of another answer, open a terminal (press Ctrl+Alt+T) and run the following:

sudo -i
service mysql stop
killall -KILL mysql mysqld_safe mysqld
apt-get --yes purge mysql-server mysql-client
apt-get --yes autoremove --purge
apt-get autoclean
deluser --remove-home mysql
delgroup mysql
rm -rf /etc/apparmor.d/abstractions/mysql /etc/apparmor.d/cache/usr.sbin.mysqld /etc/mysql /var/lib/mysql /var/log/mysql* /var/log/upstart/mysql.log* /var/run/mysqld
updatedb
exit

If you want to delete the log of what you did while using the mysql client:

rm ~/.mysql_history

If you want to delete the logs of what all users on the system did while using the mysql client (the other users might be unhappy with this):

awk -F : '{ print($6 "/.mysql_history"); }' /etc/passwd | xargs -r -d '\n' -- sudo rm -f --

or for all logs including those outside of existing user home directories:

sudo find / -name .mysql_history -delete
  • 18
    You may also need dpkg -l | grep mysql to list any installed mysql packages, then e.g. sudo apt-get purge mysql-common for each entry – xxjjnn Jul 13 '16 at 8:33
  • 7
    If you re-install mysql afterwards, you may have to run mkdir /etc/apparmor.d/abstractions/mysql and mkdir /etc/mysql/conf.d/ again. – kiltek Mar 6 '17 at 14:17
17

I found some help, but it did not remove everything. I added an asterisk before and after mysql like this:

sudo apt-get remove --purge *mysql\*
sudo apt-get autoremove
sudo apt-get autoclean
  • 2
    Are you trying to answer the question ? – George Udosen Dec 31 '16 at 8:00
  • 2
    best answer ever :) – RicardoE Aug 11 '17 at 0:42
  • 1
    I would also sudo rm -rf /var/lib/mysql If I didn't do that, I ran into trouble when re-provisioning the server (using geerlingguy's ansible-role-mysql). – TryHarder Oct 20 '17 at 6:19
  • It also removes php mysqli extension – Jaber Al Nahian Mar 29 at 7:40
  • CAUTION: this may remove a bunch of other packages that any link to MySQL, read carefully what will be removed. – Nadjib Mami Apr 5 at 15:05
1

Another way, that worked for me, was to use Synamptic Package Manager. On the left hand pane,where it says: All, Installed, etc. there is an entry for Not Installed (residual config.) (or similar wording). Under there I found options to clear all MySQL install files. This worked for MySQL 5.7.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.