Drop all tables in a database

Sometimes it can be useful to completely drop all tables in a database, for example to reset a DB to a previous version from a backup.

After checking that you are doing this on the right database and that you know what you are doing, you can do this:

SET FOREIGN_KEY_CHECKS = 0;
SET GROUP_CONCAT_MAX_LEN=32768;
SET @tables = NULL;
SELECT GROUP_CONCAT('`', table_name, '`') INTO @tables
 FROM information_schema.tables
 WHERE table_schema = (SELECT DATABASE());
SELECT IFNULL(@tables,'dummy') INTO @tables;

SET @tables = CONCAT('DROP TABLE IF EXISTS ', @tables);
PREPARE stmt FROM @tables;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET FOREIGN_KEY_CHECKS = 1;

All credits goes to this guy on Stackoverflow.

Advertisements

How to reset mysql root password on Ubuntu 12.04

Fast and easy!

$ sudo stop mysql
$ sudo -umysql mysqld_safe --skip-grant-tables &
$ mysql
mysql> UPDATE mysql.user SET Password=PASSWORD('newpassword') WHERE User='root';
mysql> FLUSH PRIVILEGES;
$ sudo kill `cat /var/run/mysqld/mysqld.pid`
$ sudo start mysql

Enjoy your new mysql root password!