Mysql 主从复制

主从复制原理

1.主服务器上面的任何修改都会通过自己的 I/O tread(I/O 线程)保存在二进制日志 Binary log 里面。
2.从服务器上面也启动一个 I/O thread,通过配置好的用户名和密码, 连接到主服务器上面请求读取二进制日志,然后把读取到的二进制日志写到本地的一个Realy log(中继日志)里面。
3.从服务器上面同时开启一个 SQL thread 定时检查 Realy log(这个文件也是二进制的),如果发现有更新立即把更新的内容在本机的数据库上面执行一遍。

主服务器上修改配置文件
vim/etc/my.cnf
[mysqld]
log-bin=/var/log/mysql/mysql-bin
server-id=1
gtid_mode=ON
enforce_gtid_consistency=1 
创建日志目录并赋予权限
shell> mkdir /var/log/mysql
shell> chown -R mysql.mysql /var/log/mysql
重启服务
shell> systemctl restart mysqld
创建一个专门用于复制数据的用户并授权

Mysql中操作

grant all privileges on *.* to "tom"@"%" identified by "Www.1.com"
grant 权限 on 库名.表名 to "用户名"@"允许登陆的IP地址" identified by “密码”
从服务器上进行测试
shell> mysql -utom -pWww.1.com -h10.18.43.122
shell> mysql -u测试用户 -p密码 -h主服务器IP

将主服务器中的数据导出在文件中

shell> mysqldump -uroot -pWww.1.com --all-databases --master-data=1 >dbdump.db 
shell> mysqldump  -u用户名  -p密码  --all-databases  --master-data=1 > dbdump.db

主服务器中使用 scp 工具,把备份出来的数据传输到从服务器中

scp dbdump.db 10.18.43.177:/root/dbdump.db

配置从服务器

vim /etc/my.cnf
[mysqld]
server-id=2
gtid_mode=ON
enforce_gtid_consistency=1

在从服务器上导入数据

mysql -uroot -pWww.1.com < dbdump.db

在从服务器上配置连接到主服务器的相关信息

在数据库中执行

mysql -utom -pWww.1.com -h 10.0.104.122
CHANGE MASTER TO
MASTER_HOST='10.0.104.122',
MASTER_USER='tom',
MASTER_PASSWORD='Www.1.com',
MASTER_AUTO_POSITION=1;

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

mysql> start slave;

查看状态

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.223.101
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 194
               Relay_Log_File: compute1-relay-bin.000002
                Relay_Log_Pos: 367
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
             ......

接下来就可以进行主服务器中进行测试(创建数据库或增加表中的信息)
再登陆上从服务器观察变化

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容