在CentOS上恢復MySQL數據可以通過以下幾種方法進行:
mysqldump
備份和恢復數據備份數據庫:使用以下命令備份數據庫:
mysqldump -u root -p mydb > mydb_backup.sql
輸入密碼后,mydb_backup.sql
文件將包含數據庫的結構和數據。
恢復數據庫:使用以下命令恢復數據庫:
mysql -u root -p mydb < mydb_backup.sql
輸入密碼后,數據庫將恢復到備份時的狀態。
mysqlpump
并行恢復數據如果你有多個MySQL實例,可以使用 mysqlpump
工具并行恢復數據。首先,確保已安裝 mysqlpump
:
sudo yum install mysqlpump
使用以下命令并行恢復數據:
mysqlpump -u root -p --databases mydb1 mydb2 > mydb_backup.sql
然后,使用 mysql
命令逐個恢復數據庫:
mysql -u root -p mydb1 < mydb_backup.sql
mysql -u root -p mydb2 < mydb_backup.sql
如果你需要恢復某個特定時間點之后的數據,可以使用二進制日志。首先,找到要恢復的時間點對應的二進制日志文件和位置:
sudo mysqlbinlog --start-datetime="YYYY-MM-DD HH:MM:SS" --stop-datetime="YYYY-MM-DD HH:MM:SS" /var/log/mysqld.log
這將顯示在指定時間范圍內的二進制日志條目。找到要恢復的SQL語句,并將其保存到一個文件中。然后,使用 mysql
命令執行這些SQL語句:
mysql -u root -p mydb < restored_binlog.sql
輸入密碼后,數據庫將恢復到指定的時間點狀態。
xtrabackup
)進行恢復xtrabackup
是一個強大的物理備份工具,支持InnoDB引擎的在線熱備份和恢復。以下是使用 xtrabackup
進行備份和恢復的步驟:
全量備份:
innobackupex --defaults-file="/etc/my.cnf" --user="root" --password="password" --socket="/var/lib/mysql/mysql.sock" /data/mysql/backup/
增量備份:
innobackupex --defaults-file="/etc/my.cnf" --user="root" --password="password" --socket="/var/lib/mysql/mysql.sock" --incremental-basedir=/data/mysql/backup/2023-01-01_full_backup --incremental /data/mysql/backup/
恢復數據庫:
innobackupex --defaults-file="/etc/my.cnf" --user="root" --password="password" --socket="/var/lib/mysql/mysql.sock" /data/mysql/backup/
在執行任何恢復操作之前,建議先備份所有現有數據以防止意外丟失,并仔細查看恢復方法的文檔和注意事項,以確保數據恢復的成功和數據的完整性。