1、主库配置
1)vim /etc/my.cnf
[mysqld]
server-id=1 #服务器唯一ID,每个服务器必须不一样,不然会报错
log-bin=master-bin #开启binlog日志功能,可以指定绝对路径,不指定默认在datadir指定目录下
#下面的可以选择是否写入
binlog-ignore-db = mysql
binlog-ignore-db = information_schema #ignore忽略不写binlog日志的数据库,可以多个
binlog-do-db = mysqldb #do指定写binlog日志的数据库,可以多个,不写默认为全部
binlog_format = Row/Statement/Mixed #日志存储方式
systemctl restart mysqld #重启mysql
2)创建用于主从的用户以及权限,数据库中执行
grant replication slave on *.* to 'sms'@'%' identified by "密码";
grant replication slave on *.* to 'sms'@'%';
show master status; #查看主库信息(binlong名称和位置,用于节点同步开始位置)
+-------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000004 | 891 | | | |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
2、从库配置
[mysqld]
server-id=2
relay-log=mysql-relay #开启中继日志,可以指定绝对路径,不指定默认在datadir指定目录下
#下面的可以选择是否写入
master_info_repository = TABLE
relay_log_info_repository = TABLE
relay_log_recovery = ON
systemctl restart mysqld #重启数据库
2)配置从库的主机信息,数据库中执行
change master to
master_host='192.168.118.100',
master_user='sms',
master_password='P@ssword01',
master_log_file='mysql-bin.000001',
master_log_pos=593;
start slave; #启动
show slave status\G; 查看主从状态 #Slave_IO_Running: Yes Slave_SQL_Running: Yes 都为Yes则主从成功