GTID的主从复制的配置
主库配置:
(一)、修改配置文件:在my.cnf配置文件中开启如下选项。
[mysqld]
#GTID:
gtid_mode=on
enforce_gtid_consistency=on
server_id=2003306
#binlog
log-bin=mysqlbin
log-slave-updates=1
binlog_format=row #强烈建议,其他格式可能造成数据不一致
#relay log
skip_slave_start=1
(二)、初始化数据库:
cd /usr/local/mysql/
./scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf
(三)、启动mysql进程:
cp support-files/mysql.server /etc/init.d/mysql
/etc/init.d/mysql start
(四)、校验mysql是否启动:
ps axu|grep mysqld
netstat -nalp|grep "3306"
lsof -n -i:3306
(五)、进入master数据库查询相关信息:
1、查看master状态:
show master status
2、查看主库GTID信息:
show global variables like '%gtid%';
3、查看server_id和server_uuid
show global variables like 'server%';
4、插入新数据,生成GTID号:
create database wubx;
use wubx
create table wu(id int,name varchar(30));
insert into wu(id,name) values(1,'u1');
select * from wu;
5、确认master状态是否获取GTID信息:
进行了3次事务。
6、再次添加数据,查看GTID变化:
use wubx;
insert into wu(id,name) values(2,'u2');
select * from wu;
7、在查看master信息
show master status;
变成了1-4
8、查看用户、主机名和密码:
select user,host,password from mysql.user;
9、清理没用的用户:
delete from mysql.user where user!='root' or host!='localhost';
注意:由于mysql.user是myisam引擎的表。所以gtid在复制的时候会出现错误,无法同步。
10、主库创建复制账号:
grant replication slave on *.* to 'abobo'@'%' identified by '123';
flush privileges;
11、查看用户权限:
[master]>show grants for abobo;
12、查看master的GTID信息:
show master status;
-------------------------------------------------------------------------------
从库配置
(一)、修改配置文件:在my.cnf配置文件中开启如下选项。
[mysqld]
#GTID:
gtid_mode = on
enforce_gtid_consistency = on
server_id=2013306
#binlog
log-bin=mysqlbin
log-slave-updates=1
binlog_format=row #强烈建议,其他格式可能造成数据不一致
#relay log
skip_slave_start=1
(二)、初始化数据库:
cd /usr/local/mysql/
./scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf
(三)、启动mysql进程:
cp support-files/mysql.server /etc/init.d/mysql
/etc/init.d/mysql start
(四)、校验mysql是否启动:
ps axu|grep mysqld
netstat -nalp|grep "3306"
lsof -n -i:3306
(五)、进入slave挂载master:
1、从库使用GTID的方式change到主库:
change master to
master_host='192.168.100.200',
master_user='abobo',
master_password='123',
master_auto_position=1;
注释:
master_auto_position=1,让从库自动到主库的第一个GTID去找。
2、查看slave信息:
show slave status\G;
可以看到executed gtid set:这个表示slave端没有执行过任何事务的GTID。并且,自动位置为1
3、开启同步:
start slave
4、查看同步状态:
show slave status\G;
5、查看主库: