都配置完成之后该设置账号了 同样的是两台服务器都要设置
grant replication client ,replication slave on *.* to 'test'@'192.168.1.%' identified by 'test';
grant replication client ,replication slave on *.* to 'man'@'192.168.1.%' identified by 'man';
然后设置自己的master账号 同样的是两台服务器都要设置 注意账号密码
change master to
master_host='192.168.1.72',
master_user='test',
master_password='test',
master_log_file='mysql-bin.000001',
master_log_pos=106;
然而有些依据是有一定的一句在你的mysql器中
show master status;
会出现如图所示的内容
然后开启我们的slave 检查我们是否配置正确 如图所示是ok的
start slave;
show slave status \G
然后创建一个数据库测试一下
create database ce;
use ce;
CREATE TABLE `ce` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` char(4) DEFAULT NULL,
PRIMARY KEY (`id`)
);
#分别在不同的mysql中添加数据
insert into ce values(null,'a'),(null,'b');
然后查询这张表类似于这种效果
我们来考虑这样一个问题就是
如果是同时插入数据会是什么样的情况呢!
答:肯定要出错所谓的主键冲突
解决方案:
只要不让主键重复什么样的办法都是好办法 通常用到的一下的方法 也是两台服务器
set global auto_increment_increment = 2;
set global auto_increment_offset = 1;
set global auto_increment_increment = 2;
set global auto_increment_offset = 2;
MySQL的中AUTO_INCREMENT类型的属性用于为一个表中记录自动生成ID功能,可在一定程度上代替Oracle,PostgreSQL等数据库中的sequence 然而这样的效率没有像Oracle数据库效率高
注:auto-increment-increment 和 auto-increment-offset 要写到配置文件中,防止下次重启后失效.