一、MYSQL备份恢复
1、手动备份数据库
1.查看数据文件在哪里
mysql>show global variables like '%datadir%';
2.手动进行复制备份数据文件在需要恢复的时候把文件在拷贝回去就好了(个人不推荐这种方法)
2、使用mysqldump命令进行备份
1.备份数据
1.备份所有数据库
[luo@localhost ~]mysqldump -uroot -p --all-databases > /home/luo/mysql.sql
2.备份某一个数据库
[luo@localhost ~]mysqldump -uroot -p --databases mydb1 > /home/luo/mydb1.sql #备份mydb1这个数据库
3.备份某一个表
[luo@localhost ~]mysqldump -uroot -p --mydb1 emp > /home/luo/emp.sql #备份emp表
2.恢复数据
1.恢复所有数据库的备份
mysql>source /home/luo/mysql.sql
2.恢复某一个数据库的备份
mysql>source /home/luomydb1.sql
3.恢复某一个表的备份
mysql>source /home/luo/emp.sql
二、数据库的主从复制
两台服务器 主库:master 从库:slave
主库配置
1.关闭防火墙 禁止开机自启(放行端口也行)
[root@localhost ~]systemctl stop firewalld.service [root@localhost ~]systemctl disable firewalld.service
2.配置my.cnf文件
[root@localhost ~] vim /etc/my.cnf server-id=1 read-only=0(读写)
3.重启mysqld服务
[root@localhost ~] systemctl restart mysqld
4.登录mysql,创建远程连接账号,授予主从复制权限,并且创建用户设置密码
[root@localhost ~]mysql -uroot -p mysql> CREATE USER 'itcast'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@123456'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'itcast'@'%';
5.查看二进制日志坐标(从库连接需要)
mysql> show master stating
从库配置
1.关闭防火墙 禁止开机自启(放行端口也行)
[root@localhost ~]systemctl stop firewalld.service [root@localhost ~]systemctl disable firewalld.service
2.配置my.cnf文件
[root@localhost ~] vim /etc/my.cnf server-id=2(需要和master不同) read-only=1(只读)
3.重启mysqld服务
[root@localhost ~] systemctl restart mysqld
4.登录mysql,配置链接主库
[root@localhost ~]mysql -uroot -p mysql> change master to master_host='192.168.119.135',master_user='itcast',master_password='Root@123456',master_log_file='binlog.000012',master_log_pos=664;
5.开启同步操作
mysql> start replica #8.0.22版本以后 mysql> start slave #8.0.22版本以前
6.查看主从同步状态
mysql> show replica status; #8.0.22版本以后 mysql> show slave status; #8.0.22版本以前