主从复制原理:
mysql主从复制是异步的,串行化的,有延迟1.master将改变的数 记录在本地的二进制文件中(binary log);该过程称为二进制日志事件
2.slave将master的binary log拷贝到自己的relay log(中继日志文件)中
3.中继日志事件,将数据读取到自己的数据库中
配置:
配置前准备:开启远程访问、防火墙
关闭win/linux防火墙:win:右键‘网络’;linux:service iptables stop
允许远程连接(win/linux):
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
主机配置:
[mysqld]
server-id=1 --id
log-bin='D:/mysql/mysql server 5.5/data/mysql-bin' --二进制日志文件
log-error='D:/mysql/mysql server 5.5/data/mysql-error' --错误记录文件
binlog-ignore-db=mysql --主从同步时忽略的数据库
binlog-do-db=test --(可选)指定主从同步时 同步哪些数据库
授权哪台计算机的数据库是自己的从数据库 GRANT REPLICATION slave,reload,super ON *.* TO 'root'@'192.168.2.%' IDENTIFIED BY 'root';
flush privileges;
查看主数据库状态:
show master status;(mysql-bin.0000、107)
[mysqld]
server-id=2
log-bin=mysql-bin
replicate-do-db=test
授权哪台计算机的数据库是自己的主数据库
CHANGE MASTER TO
MASTER_HOST='192.168.2.2',
MASTER_USER='root',
MASTER_PASSWORD='root',
MASTER_PORT=3306,
master_log_file='mysql-bin.000001',
master_log_pos=107;
开启主从同步:
从机:start slave;
检验:show slave status;
检查:Slave_IO_Running和Slave_SQL_Running都是yes
错误信息:Last_IO_Error
主从查看server-id:show variables like 'server_id';
设置server-id
关闭主从同步:stop slave;
set global server_id=2;
start slave;
show slave status\G
感谢博主,喝杯咖啡~
还没有人发表评论