备份方式:
物理备份: cp tar
备份所有的mysql数据
1.创建一个文件夹
2.复制mysql到文件夹
3.可以tar压缩也可以不压缩
4.scp传给要恢复备份的服务器
mkdir /dbbak
ls
ls /dbbak
cp -r /var/lib/mysql /dbbak
ls /dbbak
tar -zcvf /dbbak/mysql.tar.gz /var/lib/mysql
ls /dbbak/
scp -r /dbbak/mysql.tar.gz root@192.168.4.51:/root/
scp -r /dbbak/mysql root@192.168.4.51:/root/
ls mysql
ls /dbbak/mysql
物理恢复
1.先把mysql程序停掉
2.删除mysql文件
3.把从第一台服务器上的mysql放到/var/lib/
4.设置所属组和所属主为mysql
5.启服务
ls
systemctl stop mysqld
ls /var/lib/mysql
rm -rf /var/lib/mysql
cp -r mysql /var/lib/
ls /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
systemctl start mysqld
ps -C mysqld
mysql -u root -p"abc123...A"
逻辑备份:mysqldump mysql
1.完全备份
备份时库名的表示方式
–all-databases 或 -A //所有库
数据库名 //单个库
数据库名 表名 //单张表
-B 数据库1 数据库2 //多个库
命令格式:
mysqldump -u用户 -p密码 库或表 > /目录
[root@mysql50 ~]# mysqldump -uroot -pabc123...Q -A > /dbbak/all.sql
[root@mysql50 ~]# mysqldump -uroot -pabc123...Q -B mysql db3 > /dbbak/twodb.sql
[root@mysql50 ~]# mysqldump -uroot -pabc123...Q db3 > /dbbak/db3.sql
[root@mysql50 ~]# mysqldump -uroot -pabc123...Q db3 user > /dbbak/db3_user.sql
[root@mysql50 ~]# ls /dbbak/
all.sql db3.sql db3_user.sql mysql mysql.tar.gz twodb.sql
1.完全恢复
mysql> create database db5;
Query OK, 1 row affected (0.13 sec)
[root@mysql50 dbbak]# mysql -u root -pabc123...A db5 < /dbbak/db5.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
1.确认结果
mysql> create database db5;
Query OK, 1 row affected (0.13 sec)
mysql> use db5;
mysql> show tables;
+---------------+
| Tables_in_db5 |
+---------------+
| user |
+---------------+