天天看点

Linux下MySQL主从数据库配置

主从服务器利用MySQL的二进制日志文件,实现数据同步。二进制日志由主服务器产生,从服务器响应获取同步数据库。

环境配置:

操作系统:CentOS-7 64位

基于VM虚拟机安装

网络模式:桥接

master数据库IP:172.16.110.37

slave数据库IP:172.16.110.39

mysql版本:5.7.20

master:主服务器 作为写数据库

slave:从服务器    作为读数据库

Linux下MySQL主从数据库配置

操作步骤:

前置操作:安装mysql等相关流程  详见mysql安装

  克隆虚拟机中的操作系统

Linux下MySQL主从数据库配置

1、 向master服务器添加新用户test

添加了test用户密码为password

赋予权限:REPLICATION SLAVE

CREATE USER 'test'@'%' IDENTIFIED BY 'password';
	GRANT REPLICATION SLAVE ON *.* TO 'test'@'%';
           

2、 修改master配置

linux下mysql配置文件在  /etc/my.cnf

如果找不到可以使用查找一下

修改内容如下:

Linux下MySQL主从数据库配置
server-id=37 //该id可以随便写,我使用的ip末段为id
	binlog-do-db=world //仅同步该数据库
	log-bin=mysql-bin  //打开日志(主机需要打开),这个mysql-bin也可以自定义,这里也可以加上路径,如:/home/www/mysql_bin_log/mysql-bin  
           

重启mysql服务:service mysqld restart

执行show mastr status 记住 file名称和position值

mysql-bin.000002 154

Linux下MySQL主从数据库配置

3、切到slave服务器

配置文件添加如下内容

server-id=39
	binlog-do-db = mydb //指定mysql的binlog日志记录哪个db
	log-bin=mysql-bin
           
Linux下MySQL主从数据库配置

执行

  CHANGE MASTER TO

MASTER_HOST='172.16.110.37',

MASTER_USER='test',

MASTER_PASSWORD='password',

MASTER_LOG_FILE='mysql-bin.000002',

MASTER_LOG_POS=154;

执行:START slave;坑看下面

查看slave状态:show slave status\G

如果你遇到slave_io_running为no

那么不是你的网络不通

就是权限没设置好,

我装了三次,都是因为权限和网络引起的

Linux下MySQL主从数据库配置

这里有个坑,因为是克隆的 uuid此时是相同的可能引起复制开启失败

我们删掉这个auto.cnf 文件,重启mysql即可生成新的

[[email protected] bin]#  cat /var/lib/mysql/auto.cnf 

[auto]

server-uuid=df715735-c9aa-11e7-a58b-000c29a4990d

auto具体位置如不一致可以查找一下

没啥大问题了

Linux下MySQL主从数据库配置