赞
踩



MySQL的主从复制

Master主服务器上的数据发生改变时,将其改变写入二进制事件日志文件中Slave 从服务器会在一定时间间隔内对master 主服务器上的二进制日志进行探测,探测其是否发生过改变
master 主服务器的二进制时间发生了改变,则开始一个 I/O Thread 请求 master 二进制事件日志master 主服务器为每个 I/O Thread 启动一个 dump Thread,用于向其发送二进制事件日志slave 从服务器将接收到的二进制事件日志保存至自己本地的中继日志文件中slave 从服务器将启动 SQL Thread 从中继日志中读取二进制日志,在本地重放,使得其数据和主服务器保持一致I/O Thread 和 SQL Thread 将进入睡眠状态,等待下一次被唤醒
linux的mysql、canal、redis,其中canal和redis在一台机器,mysql单独一个机器

别忘了 开启
start net mysql80


show master status;
查看SHOW VARIABLES LIKE 'log_bin'; 如果是on跳过下一步!


开启MySQL的binlog写入功能

做好备份


my.cnf
[client]
default_character_set=utf8
[mysqld]
log-bin=mysql-bin #开启 binlog
binlog-format=ROW #选择 ROW 模式
server_id=1 #配置MySQL replaction需要定义,不要和canal的 slaveId重复
collation_server = utf8_general_ci
character_set_server = utf8
修改


重启mysql
再次查看SHOW VARIABLES LIKE 'log _bin';

授权canal连接MySQL账号


DROP USER IF EXISTS 'canal'@'%';
CREATE USER 'canal'@'%' IDENTIFIED BY 'canal';
GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' IDENTIFIED BY 'canal';
FLUSH PRIVILEGES;
SELECT * FROM mysql.user;
上面是教学给的 但是我报错 我这样写的 才过的 看大家自己测试的时候,也希望大家要到原因留言告诉俺一声
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。