mysq双主模式

Posted Frankiee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysq双主模式相关的知识,希望对你有一定的参考价值。

准备环境:服务器操作系统为RHEL6.4 x86_64,为最小化安装。主机A和主机B均关闭防火墙和SELINUX ,IP地址分别为192.168.131.129和192.168.131.130,mysql版本为5.6.26,为通用二进制包。

 
安装MySQL
 
1.主机A操作
 
# tar xf mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz
 
# mv mysql-5.6.26-linux-glibc2.5-x86_64 /usr/local/mysql
 
# useradd -M -s /sbin/nologin mysql
 
# chown -R root:root /usr/local/mysql/*
 
# chown -R mysql:mysql /usr/local/mysql/data/
 
# yum -y install libaio
 
# cd /usr/local/mysql/scripts/
 
# ./mysql_install_db --datadir=/usr/local/mysql/data/ --user=mysql --basedir=/usr/local/mysql/
 
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
 
# echo ‘export PATH=$PATH:/usr/local/mysql/bin‘ >>/etc/profile
 
# source /etc/profile
 
# vim /etc/my.cnf
 
[mysqld]
 
datadir=/usr/local/mysql/data
 
socket=/tmp/mysql.sock
 
user=mysql
 
symbolic-links=0
 
[mysqld_safe]
 
log-error=/var/log/mysqld.log
 
pid-file=/var/run/mysqld/mysqld.pid
 
# service mysqld start
 
#chkconfig mysqld on
 
# ss -tunlp | grep 3306
技术分享
# mysqladmin -uroot password ‘123456‘ #设置数据库密码
2.主机B操作(同上)
 
二、配置双主
 
1、主机A操作
 
# vim /etc/my.cnf
 
server-id=20
 
log-bin=mysql-bin
 
log-bin-index=mysql-bin.index
 
replicate-ignore-db=test
 
binlog-ignore-db=mysql
 
binlog-ignore-db=information_schema
 
auto-increment-increment=2
 
auto-increment-offset=1
 
# service mysqld restart
 
# mysql -uroot -p123456
 
mysql> flush tables with read lock;
再打开一个远程终端窗口,执行以下操作
 
# mysqldump -uroot -p123456 -B test > test.sql
返回之前的终端窗口,做以下操作
 
mysql> unlock tables;
 
mysql> grant replication slave on *.* to ‘wdd‘@‘192.168.131.130‘ identified by ‘123456‘;
 
mysql> flush privileges;
 
# scp test.sql 192.168.131.130:/root
2、主机B操作
 
# vim /etc/my.cnf
 
server-id = 21
 
log-bin=mysql-bin
 
log-bin-index= mysql-bin.index
 
replicate-do-db=test
 
binlog-ignore-db=mysql
 
binlog-ignore-db=information_schema
 
auto-increment-increment=2
 
auto-increment-offset=2
 
#service mysqld restart
 
# mysql -uroot -p123456 < test.sql
 
# mysql -uroot -p123456
 
mysql> grant replication slave on *.* to ‘wdd‘@‘192.168.131.129‘ identified by ‘123456‘;
 
mysql> flush privileges;
3.主机A和主机B分别作如下操作
 
主机A
 
# mysql -uroot -p123456
 
mysql> SHOW MASTER STATUS;
技术分享
 
mysql> change master to
 
master_host=‘192.168.131.130‘,
 
master_user=‘wdd‘,
 
master_password=‘123456‘,
 
master_log_file=‘ mysql-bin.000002‘,
 
master_log_pos=420;
 
mysql> start slave;
 
mysql> show slave status\G;
 
 
# mysql -uroot -p123456
 
mysql> show master status;
技术分享
mysql> change master to
 
master_host=‘192.168.131.129‘,
 
master_user=‘wdd‘,
 
master_password=‘123456‘,
 
master_log_file=‘mysql-bin.000002‘,
 
master_log_pos=689;
 
mysql> start slave;
 
mysql> show slave status\G;
技术分享
三、测试
 
1、主机A进行一下操作
mysql> use test;
 
mysql> create table info(
 
-> id int(10) not null auto_increment primary key,
 
-> name char(20));
 
mysql> show tables;
技术分享
2、主机B进行操作
 
mysql> use test;
 
mysql> show tables;
技术分享
mysql> create table person (
 
-> id int(20) unsigned not null auto_increment primary key,
 
-> name char(20));
 
mysql> show tables;
技术分享
3.在主机A进行操作检验
技术分享 

以上是关于mysq双主模式的主要内容,如果未能解决你的问题,请参考以下文章

新版keeplived + MySQL双主自动切换

MySql数据库双主(双向)同步实现数据库双主热备

Mysql的双主模式

MySQL8 双主(主主)架构部署实战

MySQL集群:双主模式

Nginx+keepalived(高可用双主模式)