vim /etc/my.cnf
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#配置server-id 每个MySQL实例的server-id都不能相同
server-id=1
#MySQL的日志文件的名字
log-bin=mysql_master
#作为从库时 更新操作是否写入日志 on:写入 其他数据库以此数据库做主库时才能进行同步
log-slave-updates=on
#MySQL系统库的数据不需要同步 我们这里写了3个 更加保险
#同步数据时忽略一下数据库 但是必须在使用use db的情况下才会忽略;如果没有使用use db 比如create user 数据还是会同步的
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
#使用通配符忽略MySQL系统库的表 这样在create user时也不会进行同步了
replicate_wild_ignore_table=information_schema.%
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=performance_schema.%
replicate_wild_ignore_table=sys.%
#MySQL系统库的日志不计入binlog 这样更加保险了
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#主库配置
#创建备份的账号 使用MYSQL_NATIVE_PASSWORD的方式加密
CREATE USER ‘repl_master’@‘%’ IDENTIFIED BY ‘qwe123!@#’;
#修改密码
set password for ‘repl_master’@‘%’=password(‘qwe123!@#’);
#Mysql8加密创建用户
create user ‘repl_master’@‘%’ IDENTIFIED with mysql_native_password by ‘password’;
#对repl_master授予备份的权限
GRANT REPLICATION SLAVE ON . TO ‘repl_master’@‘%’;
grant replication slave on . to ‘repl_master’@‘%’;

#刷新权限
FLUSH PRIVILEGES;
#查看mysql主节点的状态
SHOW MASTER STATUS;

#从库配置
CHANGE MASTER TO

MySQL主的IP

MASTER_HOST=‘172.17.56.11’,

MySQL主的端口

MASTER_PORT=3306,

MySQL主的备份账号

MASTER_USER=‘repl_master’,

MySQL主的备份账号密码

MASTER_PASSWORD=‘qwe123!@#’,

日志文件 通过show master status得到的

MASTER_LOG_FILE=‘mysql_master.000001’,

日志文件位置 通过show master status得到的

MASTER_LOG_POS=2400;

#开启从库
START SLAVE;

#停止从库
STOP SLAVE;
#查看从库的状态
SHOW SLAVE STATUS;
#刷新数据库
flush privileges;

打赏
支付宝 微信
上一篇 下一篇