确认MariaDB服务状态:恢复前需确保MariaDB服务未运行(避免数据冲突),若已停止则无需此步。
sudo systemctl status mariadb
若服务正在运行,停止它:
sudo systemctl stop mariadb
获取备份文件:确保已拥有有效的数据库备份文件(如.sql格式的逻辑备份,或mariabackup/xtrabackup创建的物理备份目录)。
逻辑备份通过SQL语句重建数据库结构及数据,适用于中小型数据库。
创建目标数据库(若原数据库已丢失):
登录MariaDB命令行,执行:
mysql -u root -p
在MariaDB提示符下,创建数据库(将your_database替换为原数据库名):
CREATE DATABASE your_database;
EXIT;
导入备份文件:
使用mysql命令将备份文件导入目标数据库(将/path/to/backup.sql替换为实际路径,your_database替换为目标数据库名):
mysql -u root -p your_database < /path/to/backup.sql
输入root密码后,等待导入完成。
物理备份直接复制数据库文件,恢复速度更快,适用于大型数据库。
安装恢复工具(若未安装):
sudo apt install mariadb-backup xtrabackup # 根据备份工具选择
准备备份文件(以mariabackup为例):
若备份是全量备份(目录如/path/to/full_backup),需先“准备”备份(重组数据文件):
sudo mariabackup --prepare --target-dir=/path/to/full_backup
停止MariaDB服务:
sudo systemctl stop mariadb
清空并替换数据目录:
MariaDB默认数据目录为/var/lib/mysql,将备份文件复制到该目录(保留原目录权限):
sudo rsync -aP /path/to/full_backup/ /var/lib/mysql/
sudo chown -R mysql:mysql /var/lib/mysql # 确保属主正确
启动MariaDB服务:
sudo systemctl start mariadb
验证恢复:
登录MariaDB,检查数据库是否存在及数据完整性:
mysql -u root -p -e "SHOW DATABASES;"
mysql -u root -p -D your_database -e "SELECT * FROM your_table LIMIT 5;"
/var/lib/mysql目录属主是否为mysql:mysql。mysqldump备份可通过head命令查看是否包含CREATE DATABASE语句)。mariabackup)版本与MariaDB服务器版本一致。通过以上步骤,可根据备份类型(逻辑/物理)在Debian上恢复MariaDB数据库。建议定期测试恢复流程,确保备份有效性。