1.在数据库中创建同步用户
互为主从设置
192.168.0.32为主数据库服务器
192.168.0.33为从数据库服务器
在32上创建
#创建同步账户
create user 'tongbu'@'192.168.0.33' identified by '123456';
select * from mysql.user;
#给用户授权
grant all privileges on *.* to tongbu@'192.168.0.33';
flush privileges;
在33上创建
#数据库同步设置
#创建同步账户
create user 'tongbu'@'192.168.0.32' identified by '123456';
select * from mysql.user;
#给用户授权
grant all privileges on *.* to tongbu@'192.168.0.32';
flush privileges;
2.修改my.ini配置文件
在192.168.0.32机器上修改my.ini文件
[mysqld]
# master db config
log-bin=MySQL-bin
relay-log=relay-bin
relay-log-index=relay-bin-index
server-id=1
binlog-do-db=dbname
binlog-ignore_db=mysql
replicate-do-db=dbname #需要同步的数据库名
replicate_ignore_db=mysql #不需要同步的数据库名
sync-binlog = 1
在192.168.0.33机器上修改my.ini文件
# master db config
log-bin=MySQL-bin
relay-log=relay-bin
relay-log-index=relay-bin-index
server-id=1
binlog-do-db=dbname
binlog-ignore_db=mysql
replicate-do-db=dbname #需要同步的数据库名
replicate_ignore_db=mysql #不需要同步的数据库名
sync-binlog = 1
修改完配置文件后,重启mysql服务
3.互为主从设置
在192.168.0.32机器上登陆mysql,执行以下语句
change master to master_host='192.168.0.33',master_user='tongbu',master_password='123456';
start slave;
在192.168.0.33机器上登陆mysql,执行以下语句
change master to master_host='192.168.0.32',master_user='tongbu',master_password='123456';
start slave;
4.测试
#添加数据
insert into table_name(id,age,sex,state) values(33,2,3,4);
#更新数据
update table_name set age = 5 where id = 33;
#删除数据
delete from table_name where id = 33;
5.可能遇到的问题
1.在网上的介绍设置中,有一种是在配置文件中添加如下信息:
master-host=192.168.0.32 #主机32的IP地址
master-user=tongbu #同步帐户
master-password=123456 #同步帐户密码
master-port=3306 #端口,主机的MYSQL端口
master-connect-retry=60 #重试间隔60秒
按这种方式配置后,会发现无法启动mysql服务,这是由于在mysql在5.1.7之后,不再在配置文件中支持此参数了。