sudo apt install mysql-server(自動 systemd 整合、安全更新)mysql-apt-config 選擇 5.7/8.0[mysqld]
# 基礎
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
pid-file=/var/run/mysqld/mysqld.pid
port=3306
# 字元集
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 連線池
max_connections=1000
thread_cache_size=32
# InnoDB
innodb_buffer_pool_size=2G # 視記憶體調整
innodb_log_file_size=256M
innodb_flush_log_at_trx_commit=2
innodb_file_per_table=ON
# 日誌
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow.log
long_query_time=1
log_bin=/var/log/mysql/binlog
binlog_format=ROW
server-id=1
expire_logs_days=7
systemctl start|stop|restart|status mysql
systemctl enable mysql # 開機自啟
CREATE USER 'app'@'10.0.0.%' IDENTIFIED BY 'StrongPass!23';
GRANT SELECT,INSERT,UPDATE,DELETE ON appdb.* TO 'app'@'10.0.0.%';
FLUSH PRIVILEGES;
# 線上熱備份(單交易一致性)
mysqldump --single-transaction --routines --triggers -u root -p dbname > $(date +%F)_dbname.sql
# 壓縮備份
mysqldump --single-transaction -u root -p dbname | gzip > $(date +%F)_dbname.sql.gz
# 還原
gunzip < backup.sql.gz | mysql -u root -p dbname
gtid_mode=ON, enforce_gtid_consistency=ON, log_slave_updates=ONGRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'pass';CHANGE MASTER TO MASTER_HOST='...', MASTER_USER='repl', MASTER_PASSWORD='pass', MASTER_AUTO_POSITION=1;START SLAVE; SHOW SLAVE STATUS\G 確認 Slave_IO_Running=Yes, Slave_SQL_Running=Yesmysqldump --default-character-set=latin1 --skip-set-charset -u root -p dbname | sed 's/latin1/utf8mb4/g' | mysql --default-character-set=utf8mb4 -u root -p dbname
SHOW GLOBAL STATUS LIKE 'Threads_connected';SHOW ENGINE INNODB STATUS\G 觀察 Buffer Pool 命中率、行鎖等待mysqldumpslow /var/log/mysql/slow.log 分析慢查詢Ubuntu + MySQL 運維核心:APT 安裝 → my.cnf 調優 → systemd 管理 → GTID 主從 → 定期備份 → 慢查詢分析。掌握此流程即可應對 90% 生產場景。