MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解

 

这里强调的数据库的版本,是因为MySQL在5.6之前和之后的安装方式是不一样的。 
本人在进行配置的时候,也遇到了这个坑,这里提前说明,希望大家不要采坑。

 

主机A:192.168.0.179 (Master)

主机B:192.168.0.143 (Slave)

 

Master的配置

在Linux环境下MySQL的配置文件的位置是在 /etc/my.cnf ,在该文件下指定Master的配置如下:

log-bin=mysql-bin
server-id=1
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
binlog-do-db=testdb 

这里的server-id用于标识唯一的数据库,这里设置为1。

binlog-ignore-db:表示同步的时候ignore的数据库 
binlog-do-db:指定需要同步的数据库

1、然后重启mysql:service mysqld restart

2、进入mysql:[root@VM~]# mysql -u root -p 回车,输入mysql密码进入。

3、 赋予从库权限帐号,允许用户在主库上读取日志,赋予192.168.0.143也就是Slave机器有File权限,赋予Slave机器REPLICATION SLAVE的权限。

在Master数据库命令行中输入:

> GRANT REPLICATION SLAVE ON *.* TO 'syncuser'@'192.168.0.143' IDENTIFIED BY '123456';

> FLUSH PRIVILEGES

4、重启mysql,登录mysql,显示主库信息

mysql> show master status;

这里的 File 、Position 是在配置Salve的时候要使用到的,Binlog_Do_DB表示要同步的数据库,Binlog_Ignore_DB 表示Ignore的数据库,这些都是在配置的时候进行指定的。

 

Slave的配置

1、从库的配置,首先也是修改配置文件:/etc/my.cnf 如下:


server_id = 2
log_bin = mysql-bin

replicate-do-db = testdb

log-slave-updates
slave-skip-errors = all
slave-net-timeout = 60

在MySQL5.6之后的版本中没有指定,

master-host=192.168.0.179 #Master的主机IP
master-user=syncuser
master-password=123456 #Master的MySQL密码

mysql5.6之后这些配置在mysql命令行里面配置.下面就重启mysql, 进入mysql:

mysql> stop slave; 
mysql> change master to master_host='192.168.0.179',master_user='syncuser',master_password='123456',master_log_file='mysql-bin.000001', master_log_pos=1686;

mysql> start slave;

然后可以通过mysql> show slave status; 查看配置的信息:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

这两个表示同步正常

 

配置过程,到此为止,以备后用,也方便大家查阅。

 

 


  





 

posted @ 2018-01-18 10:41  宏来  阅读(265)  评论(0编辑  收藏  举报