Due to a mishap I deleted the entire /var/lib/mysql directory. Since the database did not contain anything important, I do not want to go through the hassle of restoring it from an old backup, but instead create the directory structure from scratch. How do I do it without reinstalling MySQL?

2 Answers 2


You should be able to just run mysql_install_db from the command line

mysql_install_db initializes the MySQL data directory and creates the system tables that it contains, if they do not exist. It also initializes the system tablespace and related data structures needed to manage InnoDB tables. As of MySQL 5.6.8, mysql_install_db is a Perl script and can be used on any system with Perl installed. Before 5.6.8, it is a shell script and is available only on Unix platforms.

Please read the MySQL Documentation in full for mysql_install_db, then ...


If it does not work on the first try, do this

mkdir /var/lib/mysql
mkdir /var/lib/mysql/mysql
chown -R mysql:mysql /var/lib/mysql 

then run mysql_install_db again


For MySQL 5.7 > just:

# Move or remove the original dir
mv /var/lib/mysql /tmp/mysql

# Create a new dir
mkdir /var/lib/mysql

# Change owner to mysql (user and group)
chown -R mysql:mysql /var/lib/mysql

# Create MySQL initial data
mysqld --initialize
  • 2
    the only answer that's worked for me
    – Bahaa Odeh
    Nov 12, 2018 at 15:26
  • mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper
    – Bahaa Odeh
    Nov 12, 2018 at 15:26
  • Can confirm, this fixed a reinstall issue on Ubuntu 16.04 LTS Server.
    – MadHatter
    Sep 28, 2020 at 14:29

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.