mysql 主从备份原理
2019-02-26 本文已影响0人
晨曦_zdq
配置步骤:
1、在主服务器上,您必须启用二进制日志记录并配置唯一的服务器ID。需要重启服务器。
编辑主服务器的配置文件/etc/my.cnf,添加如下内容
[mysqld]
log-bin=/var/log/mysql/mysql-bin
server-id=1
创建日志目录并赋予权限
shell> mkdir /var/log/mysql -p
shell> chown mysql.mysql /var/log/mysql
重启服务: systemctl restart mysqld
2、应该创建一个专门用于复制数据的用户
每个从站使用MySQL用户名和密码连接到主站,因此主站上必须有用户帐户,从站可以使用该帐户进行连接
master 上的任何账户都可以用于复制的操作,前提是必须先被授权。
创建一个仅具有复制过程权限的单独帐户,以最大程度地降低对其他帐户的危害。
在 master 上执行如下操作
create user 'jack'@'%' identified by 'Www.2.com';
grant replication slave on *.* to 'jack'@'%';
mysql> flush privileges; //刷新授权表
3、在从服务器上使用刚才的用户进行测试连接
mysql -ujack -pWww.2.com -h10.0.104.210
注:如果 -hip 替换成主服务器的主机名,需在/etc/hosts 进行域名解析。
主服务器中有数据:须先备份传到从库中,恢复以保持数据的一致性。
shell> mysqldump -u用户名 -p密码 --all-databases --master-data=1 > dbdump.db
1、从主服务器中使用 scp 或 rsync 等工具,把备份出来的数据传输到从服务器中
scp dbdump.db root@mysql-slave1:/root/
2、配置从服务器,并重启
再从服务器中的/etc/my.cnf里添加
server-id=2
3、查询主服务器
mysql> show master status\G
*************************** 1. row ***************************
File: mysql-bin.000004
Position: 595
在从服务器上设置
mysql> change master to
-> MASTER_HOST='a-210',MASTER_USER='jack',MASTER_PASSWORD='Www.2.com',MASTER_PASSWORD='Www.2.com',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=595;
注意:权限不要写错;
启动 slave
mysql> start slave;
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: a-210
Master_User: jack
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 595
Relay_Log_File: b-208-relay-bin.000002
Relay_Log_Pos: 320
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
当出现两个yes时,成功。