操作步骤
- 关闭 selinuxs
#首先对主从两台机器同事操作
chkconfig selinux off #关闭开机启动
setenforce 0 #关闭selinux
vim /etc/selinux/config #编辑配置项目
SELINUX=disabled#
修改这一行
serice iptables stop#关闭防火墙
getenforce #检测是否关闭防火墙
2.修改主服务器
vim /etc/my.cnf
#修改如下行
server-id=12#建议修改成服务器ip地址的后一位
- 重启两台mysql服务
service mysql restart
4.保持两台数据库结构一致
msyql -uroot -p
create database demo;
use demo;
create table user (id int primary key auto_increment, username varchar(30))engine=innodb default charset=utf8;
exit;
- 在主(master)服务器上设置一个专门用来访问的权限的账户。
msyql -uroot -p#链接主服务器的数据库
CREATE USER 'user'@'x.x.x.x' IDENTIFIED BY 'password';#创建用户
grant replication slave on *.* to 'mysqync'@'%' identifid by '你的密码';
show master status; #查看之服务器的数据库
- 配置从服务器
mysql -uroot -p #连接服务器
? change master to;
?change
change master to
-> master_host='10.0.211.5',
-> master_user='mysync',
-> master_password='123456',
-> master_log_file='mysql-bin.000016',
-> master_log_pos=507;#配置主服务器(此操作需要在从服务器上操作)
start slave;#开启服务器
show slave status \G;#查看状态
#能看到下面的两行则表示成功 Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
#成功
#master端
binlog-do-db= test #二进制需要同步的数据库名
binlog-ignore-db=mysql #避免同步 mysql 用户配置,以免不必要的麻烦
#slave端:
replicate-do-db=test #(do这个就是直接指定的意思)
replicate-ignore-db=mysql
解决主键冲突
#在从属服务器上执行一下命令,跳过他:
slave:stop slave;
set global sql_slave_skip_counter = 1;
#或者在从属服务器上的my.cnf中加上
slave-skip-errors = 1062;