博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux下Mysql数据库互为主从的配置过程
阅读量:5256 次
发布时间:2019-06-14

本文共 2447 字,大约阅读时间需要 8 分钟。

配置准备:

两台机器:A(193.168.10.101)  B(193.168.10.102)

mysql大版本需要一致,小版本可忽略

 

配置过程:

A(193.168.10.101) 机器配置:

执行命令:vi /etc/my.cnf后在mysqlid下添加如下内容:

log-bin=/var/lib/mysql/mysql-binserver-id=101auto_increment_offset=1auto_increment_increment=2skip-slave-startlog-slave-updates=true
binlog-do-db=db_abinlog-do-db=db_bbinlog-do-db=db_cbinlog-ignore-db=mysql

参数说明:

log-bin=mysql-bin  #开启二进制日志server-id=101  #2到232–1之间的一个正整数值,唯一,默认是1,建议使用ip的最后一段auto_increment_offset=1  #自增id起始值为1auto_increment_increment=2  #自增基数为2,保证id为奇数skip-slave-start  #手动启动同步服务,避免突然宕机导致的数据日志不同步log-slave-updates=true  #互为主从必要
binlog-do-db  #需要复制的数据库binlog-ignore-db  #不需要复制的数据库

保存修改完成之后执行命令service mysqld restart重启mysql数据库:

service mysqld restart

 

给主机B赋予mysql权限

执行命令:mysql -u用户名-p密码登录mysql数据库后执行以下命令:

grant all on *.* to 'slave'@193.168.10.102 identified by '123456';
或者  grant replication slave on *.* to 'slave'@193.168.10.102 identified by '123456'; (权限不同)

给主机B赋予权限,这里@前面的slave是登录名,可以自己定义,最后面的123456是登录密码。

 

初始化bin-log日志

执行mysql命令reset master;清空所有的bin-log日志,然后执行mysql命令show master status;查看最新的bin日志。

reset master; show master status;

 

上图中的mysql-bin.000001就是最新的日志文件名称,Position是bin日志结束的位置,这两个值会在主机B中使用。

到此主机A配置完毕,切记为了保持主从的一致性,先不要操作主机A mysql数据库,待主机B配置完成且设置同步后才可以进行操作。

 

B(193.168.10.102) 机器配置:

执行命令:vi /etc/my.cnf后在mysqlid下添加如下内容:

log-bin=/var/lib/mysql/mysql-binserver-id=102auto_increment_offset=2auto_increment_increment=2skip-slave-startlog-slave-updates=true

注意这里的server-id和offset值和A机器上的不同。

 

保存修改完成之后执行命令service mysqld restart重启mysql数据库:

service mysqld restart

 

给主机A赋予mysql权限

执行命令:mysql -u用户名-p密码登录mysql数据库后执行以下命令:

grant all on *.* to 'slave'@193.168.10.101 identified by '123456';

注意这里是101

 

初始化bin-log日志

执行mysql命令reset master;清空所有的bin-log日志,然后执行mysql命令show master status;查看最新的bin日志。

reset master; show master status;

 

 

同步配置:

在主机A上重新登录mysql后执行:

change master to master_host='193.168.10.102',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;

这里的master_host是指主机B的ip地址,master_uesr是执行同步操作的用户名,master_password是执行同步的用户密码,master_log_file是主机B的bin-log日志,master_log_pos是从bin-log日志开始同步的位置。

然后开启同步  执行:

start slave;

查看是否成功:

show slave status\G;

如图所示 表示成功。

在主机B上重新登录mysql执行:

change master to master_host='193.168.10.101',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;
start slave;
show slave status\G;

以上互为主从配置完成。可自行在其中一个mysql中创建数据库创建表,然后查看另外一个mysql中是否已经同步。

 

转载于:https://www.cnblogs.com/blazeZzz/p/10184503.html

你可能感兴趣的文章
mac屏幕录制
查看>>
批量---修改保存 (通用方法)
查看>>
Java 享元设计
查看>>
20145118 《Java程序设计》 第3周学习总结
查看>>
函数内部的两个特殊的对象:arguments和this
查看>>
MySQL 5.7安装与配置
查看>>
第四阶段 02_Linux简介
查看>>
window size in Windows User Experience Interaction Guidelines
查看>>
Using 1.7 requires compiling with Android 4.4 (KitKat); currently using API 8
查看>>
Logstic回归采用sigmoid函数的原因
查看>>
ssl选购
查看>>
maven安装与常用命令
查看>>
linux命令ping
查看>>
71. Simplify Path
查看>>
294. Flip Game II
查看>>
mac 64位 安装wxpython后报错解决方法
查看>>
命令行标签
查看>>
flask 利用flask_wtf扩展 创建web表单
查看>>
MongoDB官方C#驱动中查询条件Query用法
查看>>
Ubuntu安装mysql和简单使用
查看>>