List all users in the current MySQL server:
SELECT User, Host FROM mysql.user;
Remove a user from the server:
DROP USER '<User>'@'<Host>';
Remove all binary logs:
RESET MASTER;
Delete all binary logs but keep a week worth of logs:
1
$ mysql --verbose --execute="PURGE BINARY LOGS BEFORE '`date +"%Y-%m-%d" -d last-week`';"
And if you put this in a cron-tab, donβt forget to escape percents:
1
$ mysql --verbose --execute="PURGE BINARY LOGS BEFORE '`date +\%Y-\%m-\%d -d last-week`';"
Check, auto-repair and optimize all databases:
1
$ mysqlcheck --auto-repair --optimize --all-databases
Export a database:
1
$ mysqldump -u my_user "my-database" > data.sql
Here is a cron-able command to restart a MySQL service if no process found active:
1
$ [ `ps axu | grep -v "grep" | grep --count "mysql"` -le 0 ] && /etc/init.d/mysql restart
Monitor the queries being run (source):
1
$ watch -n 1 mysqladmin --user=XXXXX --password=XXXXX processlist
Get the list of default configuration parameters the server will use regardless of the values set in config files (source):
1
$ mysqld --no-defaults --verbose --help
Migrate all tables of all databases from MyISAM to InnoDB:
1
$ mysql --skip-column-names --silent --raw --execute="SELECT CONCAT(table_schema , '.', table_name) FROM INFORMATION_SCHEMA.tables WHERE table_type='BASE TABLE' AND engine='MyISAM';" | xargs -I '{}' mysql --verbose --execute="ALTER TABLE {} ENGINE=InnoDB;"