方法一:
物理备份
step1:关闭mysqld服务,拷贝数据库的数据目录到本地的备份目录
systemctl stop mysqld
cp/tar -r /var/lib/mysql/* 备份目录
step2:scp传递本地的备份目录内容给目标主机
scp -r 备份目录/* 远程主机的备份目录
step3:关闭远程主机的mysqld,将备份目录下的内容覆盖拷贝到自己本机的数据目录下
systemctl stop mysqld
rm -rf /var/lib/mysql/*
cp -r 备份目录/* /var/lib/mysql
step4:更改数据目录的所有者和所属组
chown -R mysql:mysql /var/lib/mysql
step5:开启mysqld服务
systemctl start mysqld
方法二:mysqldump
mysqldump -u用户 -p密码 -A 或 --all-databases(库也会被备份) > 备份文件.sql
-B 数据库1 数据库2(库也会被备份)
单个数据库(库不会被备份,恢复时先创建库)
数据库 表 (库不会被备份,恢复时先创建库)
备份和恢复时都会锁表
mysqldump --opt --skip-locak-tables //在不锁表的情况下进行数据的导入导出
注意:
导入单库或是单表时,库必须在目标数据库中结构已经存在(事先创建)
导入多个或全部的库,会连同库一并导入,无需创建
恢复:
方法一:mysql -u用户 -p密码 数据库 < 备份文件.sql(单库和单表恢复时要加库名,其他的不用)
方法二:mysql -u用户 -p密码
> source 备份文件.sql;
方法三:
方法四: