您的位置:首页 > 数据库 > MySQL

MySQL 主从同步配置

2017-01-01 11:18 543 查看
环境
        两台虚拟机,一主一从,防火墙要放开(可以直接关闭防火墙)
        关闭防火墙
123456
su
 
root
service iptables stop 
#关闭防火墙
service iptables status 
#验证是否关闭
chkconfig iptables off 
#关闭防火墙的开机自动运行
chkconfig –list | 
grep
 
iptables 
#验证防火墙的开机自动运行
vim 
/etc/sysconfig/selinux
 
# 禁用selinux,将SELINUX=disabled
安装 MySQL            Linux下yum安装MySQL yum安装MySQL指定版本.note ,Blog:Linux下yum安装MySQL yum安装MySQL指定版本
master 配置
1. 拷贝并修改配置文件
1
cp
 
/user/share/mysql/my-medium
.cnf  
/etc/my
.cnf
2. 修改master上的配置文件 my.cnf
        在[mysqld]下添加如下字段:
1234567
server-
id
=1
log-bin=log
#需要同步的数据库
binlog-
do
-db=
test
# binlog-do-db=test2
#被忽略的数据库
binlog-ignore-db=mysql
3. 在master上为slave添加一个同步账号
        grant replication slave on *.* to 'jerome'@'*' identified by 'jeromepassword';
4. 重启master的mysql服务
        service mysqld restart;        查看master日志情况:show master status\G;
slave 配置
1. 拷贝并修改配置文件
1
cp
 
/user/share/mysql/my-medium
.cnf  
/etc/my
.cnf
2. 修改slave上的配置文件my.cnf。
        在[mysqld]下添加如下字段:记得把原先的server-id注释掉。
1234567891011
server-
id
=2
master-host=192.168.17.128
master-user= jerome
master-password= jeromepassword
master-port=3306
master-connect-retry=60
#需要同步的数据库
binlog-
do
-db=
test
# binlog-do-db=test2
#被忽略的数据库
binlog-ignore-db=mysql
3. 重启mysql服务
        service mysqld restart;
4. 启动slave并查看slave情况
123
mysql -uroot -proot;
mysql>start slave;
mysql>show slave status\G;
        如果Slave_IO_Running、Slave_SQL_Running状态为Yes则表明设置成功
问题
问题1:Slave_IO_Running: No或者Slave_SQL_Running: No
1. 停掉slave服务
12
mysql> slave stop;
Query OK, 0 rows affected (2.01 sec)
 2. 解决办法解决办法1a.在master上查看。mysql> show master status\G;*************************** 1. row ***************************File: mysql-bin.000002Position: 106Binlog_Do_DB: testBinlog_Ignore_DB:1 row in set (0.00 sec)b.到slave上手动同步。mysql>change master to master_log_file='mysql-bin.000002',master_log_pos=106;Query OK, 0 rows affected (0.00 sec)mysql> slave start;#查看是否都是YES
mysql> show slave status\G;

解决方法2mysql> slave stop;mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;mysql> slave start;#查看是否都是YESmysql> show slave status\G;
以上如果还是显示Slave_IO_Running:NO,可以多次查看show slave status\G;发现有报错信息,大概意思是server_id不能和主库一样1. 停止slave并查看当前server_id    停止:slave stop;    查看server_id:show variables like 'server_id';2. 修改server_id并启动salve    修改:set global server_id=2;    启动:slave start;    查看是否为YES了:show slave status\G;
其他
        Slave_IO_Running:连接到主库,并读取主库的日志到本地,生成本地日志文件        Slave_SQL_Running:读取本地日志文件,并执行日志里的SQL命令。
常用命令:
1234
slave stop;
reset slave;
slave start;
show slave status\G;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MySQL主从配置