SELECT User, Host FROM mysql.user;
SELECT User, Host, authentication_string FROM mysql.user;
SELECT User, Host, Select_priv, Insert_priv, Update_priv, Delete_priv
FROM mysql.user;
SELECT User, Host FROM mysql.user WHERE Host = 'localhost';
SELECT User, Host FROM mysql.user WHERE Host != 'localhost';
SELECT User, Host, Create_time FROM mysql.user;
SELECT User, Host, password_last_changed FROM mysql.user;
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password123';
CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'password123';
DROP USER 'username'@'host';
DROP USER 'testuser'@'localhost';
ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
ALTER USER 'testuser'@'localhost' IDENTIFIED BY 'newpassword123';
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host';
GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'username'@'host';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'host';
FLUSH PRIVILEGES;
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'host';
REVOKE DELETE ON database_name.* FROM 'username'@'host';
FLUSH PRIVILEGES;
SHOW GRANTS;
SHOW GRANTS FOR 'username'@'host';
mysqldump -u username -p database_name > backup.sql
mysqldump -u username -p --all-databases > all_databases_backup.sql
mysqldump -u username -p database_name table_name > table_backup.sql
mysqldump -u username -p database_name | gzip > backup.sql.gz
mysql -u username -p database_name < backup.sql
gunzip < backup.sql.gz | mysql -u username -p database_name
ANALYZE TABLE table_name;
OPTIMIZE TABLE table_name;
CHECK TABLE table_name;
REPAIR TABLE table_name;
SHOW VARIABLES;
SHOW STATUS;
SHOW PROCESSLIST;
SHOW ENGINE INNODB STATUS;
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;
SHOW VARIABLES LIKE 'slow_query_log_file';
SHOW STATUS LIKE 'Threads_connected';
SHOW VARIABLES LIKE 'max_connections';
SHOW STATUS LIKE 'Qcache_hits';
SHOW STATUS LIKE 'Qcache_inserts';
SHOW VARIABLES LIKE 'log_error';
SHOW BINARY LOGS;
SHOW MASTER STATUS;
PURGE BINARY LOGS TO 'mysql-bin.000010';
PURGE BINARY LOGS BEFORE DATE(NOW() - INTERVAL 7 DAY);
DELETE FROM mysql.user WHERE User='';
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
FLUSH PRIVILEGES;
ANALYZE TABLE table_name;
DROP TEMPORARY TABLE IF EXISTS temp_table_name;
CHECK TABLE table_name;
#!/bin/bash
mysql -u root -p -e "SHOW STATUS LIKE 'Threads_connected';"
#!/bin/bash
du -sh /var/lib/mysql/
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
mysqldump -u username -p database_name > backup_$DATE.sql
gzip backup_$DATE.sql
SHOW VARIABLES LIKE 'wait_timeout';
SHOW VARIABLES LIKE 'interactive_timeout';
SHOW PROCESSLIST;
SHOW ENGINE INNODB STATUS;
SELECT * FROM information_schema.INNODB_LOCK_WAITS;
SHOW STATUS LIKE 'Created_tmp%';
SHOW VARIABLES LIKE 'tmp_table_size';
SHOW VARIABLES LIKE 'max_heap_table_size';
- 定期备份:建议每日进行完整备份,每小时进行增量备份
- 监控性能:定期检查慢查询日志和性能指标
- 权限最小化:只授予用户必要的权限
- 定期维护:定期执行 OPTIMIZE TABLE 和 ANALYZE TABLE
- 日志轮转:定期清理和轮转日志文件
- 安全更新:及时更新 MySQL 版本和安全补丁