mysql主从分离操作步骤
关闭 selinuxs#首先对主从两台机器同事操作chkconfig selinux off #关闭开机启动setenforce 0 #关闭selinuxvim /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 -pcreate 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;?changechange 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: ConnectingSlave_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;