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时,成功。

上一篇 下一篇

猜你喜欢

热点阅读