主从复制总结

2019-02-13  本文已影响0人  Zhang_cfc3

1.原理:(1)主服务器上面的任何修改都会保存在二进制日志Binary log里面
(2) 从服务器上面启动一个I/O thread,通过配置好的用户名和密码, 连接到主服务器上面请求读取二进制日志,然后把读取到的二进制日志写到本地的一个Realy log(中继日志)里面。
(3) 从服务器上面同时开启一个SQL thread 定时检查Realy log,如果发现有更新立即把更新的内容在本机的数据库上面执行一遍。
具体操作
1.在主服务器上启用二进制日志并记录其是主服务器的标识(在 /etc/my.cnf中加入)

[mysqld]log-bin=/var/log/mysql/mysql-bin
server-id=1

创建用户并且授权


shell> mkdir /var/log/mysql
shell> chown mysql.mysql /var/log/mysql

重启服务(这个都会)
2.创建个专门复制数据的用户
然后试试是否能用此用户连接

mysql> CREATE USER 'repl'@'%' IDENTIFIED BY '123';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
mysql> 

3.先导出数据然后SCP到从服务器中

shell > vim ~/.mysql_user
        > 密码
shell > mysqldump --defaults-file=~/.mysql_user -h127.0.0.1 --all-databases > dbdump.sql

scp dbdump.sql 'root'@'xxx.xxx.xxx.xxx':

4.配置从服务器 并且重启

// my.cnf 文件
[mysqld]
server-id=2

5.导入数据到从服务器

shell> mysql < /root/fulldb.dump

6.在从服务器上的mysql中配置连接主服务器的信息

mysql> CHANGE MASTER TO
MASTER_HOST='mysql-master1',
MASTER_USER='repl',
MASTER_PASSWORD='123',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;

7.启动从服务器的复制线程开始

mysql> start slave;
Query OK, 0 rows affected (0.09 sec)

上一篇 下一篇

猜你喜欢

热点阅读