首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 運維七大核心技巧:權限、監控、調優、備份全覆蓋

     編輯:MySQL 綜合教學

技巧 1:權限最小化——精確到庫/表級

-- 授權模板
GRANT SELECT, INSERT, UPDATE, DELETE ON `db_name`.* TO 'app'@'10.0.0.%' IDENTIFIED BY 'strong_pass';
GRANT SELECT ON `db_name`.`sensitive` TO 'readonly'@'%';

-- 回收
REVOKE ALL ON `db_name`.* FROM 'old'@'%';
FLUSH PRIVILEGES;

**原則**:應用賬號無 DDL/DROP/FILE,只讀賬號僅 SELECT,運維臨時授權用畢即收。

技巧 2:核心監控指令速查

指令關鍵指標
SHOW STATUSThreads_connected, Questions, Slow_queries, Innodb_buffer_pool_reads, Table_locks_waited
SHOW VARIABLESmax_connections, innodb_buffer_pool_size, query_cache_size, sync_binlog
SHOW PROCESSLISTTime 大、State=Locked/Sending data、長事務
SHOW ENGINE INNODB STATUS鎖等待、死鎖、緩衝池命中率、redo log
SHOW MASTER/SLAVE STATUSSeconds_Behind_Master, Slave_IO/SQL_Running

技巧 3:連接數與超時調優

-- 最大連接數 (預設 100)
SET GLOBAL max_connections = 2000;  -- 視內存,每連 ~2-10MB
-- 寫入 my.cnf 永久生效

-- 等待隊列 (預設 50)
SET GLOBAL back_log = 500;

-- 非活動超時 (預設 8h=28800s)
SET GLOBAL wait_timeout = 600;
SET GLOBAL interactive_timeout = 600;

技巧 4:表碎片整理

-- 檢查碎片
SELECT TABLE_NAME, Data_free FROM information_schema.TABLES 
WHERE TABLE_SCHEMA='db' AND Data_free > 0;

-- 整理 (鎖表,大表低峰期)
OPTIMIZE TABLE `table`;

-- InnoDB 線上整理 (5.6+)
ALTER TABLE `table` ENGINE=InnoDB;

技巧 5:mysqlhotcopy 熱備份 (僅 MyISAM)

mysqlhotcopy -u root -p'xxxx' 'db./^prefix$/' ./
# 需 Perl + DBI + DBD::mysql

技巧 6:日志體系管理

日志配置用途管理
錯誤日志datadir/hostname.err崩潰、啟動錯誤輪轉保留 30 天
慢查詢slow_query_log=1, long_query_time=1SQL 調優log_queries_not_using_indexes=1, 定期 pt-query-digest
Binloglog-bin=mysql-bin, binlog_format=ROW主從、PITR、審計expire_logs_days=7, max_binlog_size=100M
通用日志general_log=1 (慎用)全量審計極大磁盤佔用,僅短時排查

Binlog 分析

mysqlbinlog --base64-output=DECODE-ROWS -v mysql-bin.000001 | grep -A 20 'table'
mysqlbinlog --start-datetime="..." --stop-datetime="..." mysql-bin.000001 > replay.sql

技巧 7:權限速查表(核心權限)

權限含義
ALL PRIVILEGES除 GRANT OPTION 外所有
ALTERALTER TABLE
CREATECREATE TABLE
DELETEDELETE
DROPDROP TABLE
FILESELECT INTO OUTFILE / LOAD DATA
INDEXCREATE/DROP INDEX
INSERTINSERT
LOCK TABLES需 SELECT 權限
PROCESSSHOW FULL PROCESSLIST
RELOADFLUSH
REPLICATION SLAVE從庫讀 binlog
SELECTSELECT
SHOW DATABASES查看所有庫
SHUTDOWNmysqladmin shutdown
SUPERCHANGE MASTER, KILL, PURGE LOGS, SET GLOBAL, 突破 max_connections
UPDATEUPDATE
GRANT OPTION授權他人

自動化運維建議

  1. Prometheus + mysqld_exporter + Grafana 監控看板
  2. pt-query-digest 定期慢查詢報告
  3. 自動化備份驗證 + 校驗和比對
  4. 參數基線巡檢 + 漂移告警
  5. 容量趨勢預測 + 擴容預案

七大技巧覆蓋 MySQL 運維全生命週期。**工具死、經驗活**——在實戰中總結、自動化、文檔化,從救火隊員進化為架構師。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved