Code:
# 1. 停止MySQL服务
sudo systemctl stop mysql
# 2. 确认完全停止
sudo systemctl status mysql
# 应该显示:inactive (dead)
# 3. 备份配置文件
sudo tar czf /backup/mysql_config_$(date +%Y%m%d_%H%M%S).tar.gz /etc/mysql/
# 4. 备份数据目录(物理备份)
sudo tar czf /backup/mysql_data_full_$(date +%Y%m%d_%H%M%S).tar.gz /var/lib/mysql/
# 5. 重新启动MySQL
sudo systemctl start mysql
# 6. 验证启动成功
sudo systemctl status mysql
tail -n 10 /var/log/mysql/error.log
Code:
# 1. 首先刷新所有日志和缓冲区
mysql -u root -p -e "FLUSH TABLES WITH READ LOCK; FLUSH LOGS;"
# 2. 备份配置文件
sudo tar czf /backup/mysql_config_$(date +%Y%m%d_%H%M%S).tar.gz /etc/mysql/
# 3. 逻辑备份数据库(使用single-transaction确保一致性)
mysqldump -u root -p --all-databases --triggers --routines --events --single-transaction --master-data=2 > /backup/mysql_full_$(date +%Y%m%d_%H%M%S).sql
# 4. 解锁表
mysql -u root -p -e "UNLOCK TABLES;"
# 5. 压缩备份
gzip /backup/mysql_full_*.sql