mysql mysql netnr 发布于:9天前 更新于:4天前 24

配置主节点(192.168.100.11)

编辑配置文件 vi /etc/my.cnf 重启服务

server-id=1 # 主从唯一标记
log-bin=/package/mysql/binlog # 开启 binlog 赋予授权 chown mysql /package/mysql -R

binlog-do-db=cqsme_platform_main # 同步的数据库名
binlog-do-db=diff-main # 同步的数据库名

binlog-ignore-db=mysql,information_schema,performance_schema # 忽略的数据库名

查看主节点信息

show master status; -- 状态(文件名、位置、库)
flush logs; -- 刷新 binlog 标记加一

show variables like '%log_bin%'; -- 查看 binlog 信息
show variables like 'server_id'; -- 查看标记

主节点创建用户用于从节点连接

CREATE USER 'bb' @'192.168.100.12' IDENTIFIED WITH mysql_native_password BY 'Bb123456.';
GRANT REPLICATION SLAVE ON *.* TO 'bb' @'192.168.100.12';

flush privileges;  -- 刷新授权表信息

备份库

Flush tables with read lock; -- 全局锁 FTWRL
lock tables [table1] read,[table2] write; -- 表级锁

show master status; -- 状态(文件名、位置、库)

mysqldump -uroot -p123456 netnrdb > /netnr/data/netnrdb.sql -- 命令行备份数据库
mysql -u root -p netnrdb < /netnr/data/netnrdb.sql -- 命令行还原库

unlock tables; -- 释放锁(或断开加锁的会话连接会自动释放)

配置从节点(192.168.100.12)

编辑配置文件 vi /etc/my.cnf

server-id=2 # 主从唯一标记

replicate-do-db=cqsme_platform_main # 同步的库
replicate-do-db=diff-main # 同步的库

replicate-ignore-db=mysql,information_schema,performance_schema # 忽略的库

#replicate-do-table 同步的表
#replicate-ignore-table 忽略的表
#replicate-wild-do-table 同 replication-do-table 可通配符
#replicate-wild-ignore-table 同 replication-ignore-table 可通配符

配置标记

set global server_id=2; -- 设置标记,和 /etc/my.cnf 设置一样
show variables like 'server_id'; -- 查看标记

🔔 主节点数据库还原到从节点,从主节点备份的数据和从节点设置的主节点信息(文件、位置)一致

设置主节点信息

CHANGE MASTER TO MASTER_HOST = '192.168.100.11',
MASTER_USER = 'bb',
MASTER_PASSWORD = 'Bb123456.',
MASTER_LOG_FILE = 'mysql-bin.000004',
MASTER_LOG_POS = 373937817;

同步

start slave; -- 开始同步
show slave status; -- 查看同步状态,Slave_IO_Running:YES,Slave_SQL_Running:YES

从节点清除配置

stop slave;
reset slave;
reset slave all;

参考

https://blog.csdn.net/zyhlwzy/article/details/80569422
https://www.cnblogs.com/yuanfang0903/p/11232655.html
https://www.cnblogs.com/new-journey/p/11319527.html