mysql5.6+master+date_Mysql5.6一主多从配置

MySQL 5.6 一主多从的

半同步复制搭建

半同步简介:

在默认情况下,MySQL的复制是异步的,这意味着主服务器及其从服务器是独立的。异步复制可以提供最佳的性能,因为主服务器在将更新的数据写入它的二进制日志(Binlog)文件中后,无需等待验证更新数据是否已经复制到从服务器中,就可以自由处理其它进入的事务处理请求。但这也同时带来了很高的风险,如果在主服务器或从服务器端发生故障,会造成主从数据的不一致,甚至在恢复时造成数据丢失。

从MySQL5.5开始引入了一种半同步复制功能,该功能可以确保主服务器和访问链中至少一台从服务器之间的数据一致性和冗余。在这种配置结构中,一台主服务器和其许多从服务器都进行了配置,这样在复制拓扑中,至少有一台从服务器在父主服务器进行事务处理前,必须确认更新已经收到并写入了其中继日志(Relay

Log)。当出现超时,源主服务器必须暂时切换到异步复制模式重新复制,直到至少有一台设置为半同步复制模式的从服务器及时收到信息。

继5.5半同步复制后,MySQL5.6又对其进行了优化和改进,其中有两个地方较为重要:

1、在主从切换后,在传统的方式里,需要找到binlog和POS点,然后更改master指向,而在mysql5.6里,你无须再知道binlog和POS点,你只需要知道master的IP、端口,账号密码即可,因为同步复制是自动的,mysql通过内部机制GTID自动找点同步。

2、多线程复制,以前的版本,同步复制是单线程的,只能一个一个执行,在MySQL5.6里,可以做到多个库之间的多线程复制,但一个库里的表,多线程复制是无效的。

一、试验环境准备

1.1、安装平台:vmware

workstation 10

操作系统:CentOS

release 6.6 (Final) x86_64,最小化安装。

MySQL版本:mysql-5.6.24-linux-glibc2.5-x86_64

关闭防火墙

1.2、服务器IP地址规划:

MySQL

Master:192.168.1.152

MySQL

Slave1:192.168.1.201

MySQL

Slave2:192.168.1.202

1.3、实验拓扑:

a4c26d1e5885305701be709a3d33442f.png

二、安装Mysql5.6

2.1、由于是最小化安装的系统,需要安装一些基本的组建

# yum -y groupinstall "Perl Support"

# yum -y instdall vim wget

# cd /usr/local/src

# wget

http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.24-linux-glibc2.5-x86_64.tar.gz

2.2、新建用户和数据目录。

# mkdir -pv /mydata/data

# groupadd -r mysql

# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data

mysql

# chown -R mysql:mysql /mydata/data

2.3、安装并初始化mysql

# tar zxvf mysql-5.6.24-linux-glibc2.5-x86_64.tar.gz -C

/usr/local

# cd /usr/local/

方法一(推荐)

mv mysql-5.6.24-linux-glibc2.5-x86_64 mysql

方法二(不建议)

# ln -sv mysql-5.6.24-linux-glibc2.5-x86_64 mysql

# cd mysql

# chown -R mysql:mysql .

# scripts/mysql_install_db --user=mysql

--datadir=/mydata/data

# chown -R root .

2.4、为mysql提供主配置文件

# cd /usr/local/mysql

# cp support-files/my-default.cnf /etc/my.cnf

2.5、为mysql配置sysv服务脚本

# cd /usr/local/mysql

# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

# chkconfig --add

mysqld //添加至服务列表

# chkconfig mysqld on

为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:

2.6、输出mysql的man手册至man命令的查找路径。

编辑/etc/man.config,添加如下行即可

MANPATH /usr/local/mysql/man

2.7、输出mysql的头文件至系统头文件路径/usr/include

这可以通过简单的创建链接实现

# ln -sv /usr/local/mysql/include /usr/include/mysql

2.8、输出mysql的库文件给系统库查找路径。

# echo '/usr/local/mysql/lib' >

/etc/ld.so.conf.d/mysql.conf

# ldconfig //让系统重新载入系统库

2.9、修改PATH环境变量,让系统可以直接使用mysql的相关命令。

# echo "export PATH=$PATH:/usr/local/mysql/bin "

>/etc/profile.d/mysql.sh

# source /etc/profile.d/mysql.sh

vim /etc/my.cnf

datadir =

/mydata/data #添加

log-error = /mydata/data/error.log #添加

#pid-file =

/mydata/data/mysql.pid #注释掉

tmpdir = /var/tmp #不建议放在/tmp下

service mysqld start

以上安装过程在三台服务器均需执行。

三、主从模式配置

3.1、配置master节点:

[root@master ~]# cat /etc/my.cnf

[mysqld]

binlog-format=ROW

log-bin=master-bin

log-slave-updates=true

gtid-mode=on

enforce-gtid-consistency=true

master-info-repository=TABLE

relay-log-info-repository=TABLE

sync-master-info=1

slave-parallel-workers=2

binlog-checksum=CRC32

master-verify-checksum=1

slave-sql-verify-checksum=1

binlog-rows-query-log_events=1

server-id=1 #改成主机的ID

report-port=3306

port=3306

datadir=/mydata/data

socket=/tmp/mysql.sock

report-host=master #改成自己的主机名

#rpl_semi_sync_master_enabled=ON

禁用 rpl_semi_sync_master_enabled=ON 参数不然启动报错

注意:

上面的配置文件都可以不要,对于新手来说,看不懂,就很容易出错,新手朋友照着这个方案搭建起来也不能主从复制

选填下面的my.cnf配置

# The following options will be passed to all MySQL clients

[client]

#password = your_password

port = 3306

socket = /tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server

[mysqld]

socket = /tmp/mysql.sock

basedir = /usr/local/mysql

datadir = /data/mysql

tmpdir = /tmp

slave-load-tmpdir = /tmp

pid-file = /data/mysql/mysql.pid

#skip-name-resolve

##skip-symbolic-links

#replicate-wild-ignore-table = mysql.%

#replicate-wild-ignore-table = test.%

#log-bin-index = mysql-bin.index

#relay-log-index = relay-log.index

max_connect_errors = 10000

max_connections = 500

wait-timeout = 30

skip-external-locking

key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

#new add DBA

server-id=11

report-port=3306

port=3306

log-bin=mysql-bin.log

#report-h

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

# Remove the next comment character if you are not familiar with

SQL

#safe-updates

[myisamchk]

key_buffer_size = 20M

sort_buffer_size = 20M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

mysql> show variables like '%dir%'; +-----------------------------------------+----------------------------+

|

Variable_name |

Value |

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

|

basedir |

/usr | | |

|

datadir |

/var/lib/mysql/ | |

|

slave_load_tmpdir |

/tmp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值