您的位置:首页 > 运维架构 > Linux

Linux下mysql数据库一主一从同步配置

2016-10-17 15:37 309 查看

MySQL主从同步配置

mmj 16.09.29

1.确认运行环境

1.1确认主从IP

主服务器(master):192.168.3.10

从服务器(slave):192.168.3.18

1.2确认数据库版本

都为5.5.31


2.主服务器上配置

2.1修改MySQL配置文件

路径: /etc/mysql/my.cnf
添加以下内容:在[mysqld]下方
server-id=1

log-bin=mysql-bin
binlog-do-db=tt
binlog-ignore-db=js_xy
其中server-id是服务器id
log-bin=mysql-bin启用二进制日志
binlog-do-db是需要同步的数据库

2.2重启service

在命令行:sudo/etc/init.d/mysql restart

(Win中可以在服务中停止,再开启服务)

如果重启失败:说明设置的参数不正确(检查大小写,空格,单词拼写)

2.3注册用户

2.3.1注册可访问主库文件的用户

root登录输入:grantreplication slave on *.*
to 'slave'@'%' identified by '123456';

给所有ip分配一个访问二进制文件权限的用户slave.


2.3.2
从库连接测试

在从库上进行测试 slave用户是否能连接到主库的mysql:mysql -h
192.168.3.10 -uslave -p123456

2.4展示主库日志信息

(前提:在此时数据库不能进行数据交互。否则就要进行锁表)

mysql>showmaster status;

例子:

+----------------------------+------------------+--------------+------------------+

|File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+----------------------------+------------------+--------------+------------------+

|mysql-bin.000011 | 107 |tt |js_xy |

+---------------------------+----------+--------------+------------------+

1row in set (0.00 sec)

+----------------------------+------------------+--------------+------------------+

记录下 :
mysql-bin.000011 和
107


3.从服务器上配置(Windows也适用)

3.1修改MySQL配置文件

路径:/etc/mysql/my.cnf
(win上是my.ini)

server_id=2

log-bin=mysql-bin

replicate-do-db=tt

replicate-ignore-db=mysql

保证server-id和主库不同

3.2重启server=
2.2步骤

3.3设置同步


3.3.1重置同步

清除此前可能进行的同步配置 :mysql> reset slave;


3.3.2停止同步

停止同步,默认同步是开启的:mysql>slavestop;


3.3.3配置同步

mysql>changemaster to

master_host='192.168.3.10',

master_user='slave',

master_password='123456',

master_log_file='mysql-bin.000011',

master_log_pos=107;

master_host表示是主库的IP

master_user表示主库master上允许同步的用户

maser_password表示同步用户的密码

master_log_file表示从哪个binlog文件开始同步

master_log_pos表示从该binlog文件的那个pos节点位置开始同步.

注意:master_log_file和master_log_pos,就是我们在第四步记录的binlog文件名和pos位置节点。


3.3.4开启同步

重新开启同步 :mysql>slavestart;

3.4查看同步状态

mysql>show slave status\G;

当命令窗信息中 Slave_IO_Running
为YES同时Slave_SQL_Running
为YES
说明此时同步已经配置成功了!
如果Slave_IO_Running为NO,说明可能是从库与主库的网络不通。
如果Slave_SQL_Running为NO,说明很可能是从库与主库的数据不一致。
可能原因有:
1.防火墙
2.selinux
3.网络通不通
4.pos不对
5.配置打错
6.更改配置或其他操作以后:slavestop然后再slavestart
7.
进行3.3.1重置同步
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: