搭建mysql主主

实验环境 192.168.137.11 (lamp) 和192.168.137.12(mysql)

先搭建主从,在搭建主主。

1.搭建环境 根据auto_lamp.tar 里面的安装包和脚本来搭建。

192.168.137.11  运行脚本auto_lamp_3.0.sh

选择7自动安装lamp平台。

192.168.137.11  运行脚本auto_lamp_3.0.sh

选择4自动安装mysql平台。

2.配置mysql主从。

a.    在192.168.137.11上。

[[email protected]~]# vim /etc/my.cnf

[client]

port            = 3306

socket          = /tmp/mysql.sock

[mysqld]

port            = 3306

socket          = /tmp/mysql.sock

skip-external-locking

key_buffer_size= 384M

max_allowed_packet= 1M

table_open_cache= 512

sort_buffer_size= 2M

read_buffer_size= 2M

read_rnd_buffer_size= 8M

myisam_sort_buffer_size= 64M

thread_cache_size= 8

query_cache_size= 32M

thread_concurrency= 8

datadir=/mydata/data/

log-bin=mysql-bin

server-id       = 1

auto_increment_offset=1

auto_increment_increment=2

[mysqldump]

quick

max_allowed_packet= 16M

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size= 256M

sort_buffer_size= 256M

read_buffer= 2M

write_buffer= 2M

[mysqlhotcopy]

interactive-timeout

[mysql_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

replicate-do-db=all

***背景的参数为自己添加的。

这里有几个重要的参数。

log-bin=mysql-bin     #开启bin-log日志,记录msql主上的操作。

server-id       = 1   #mysql服务id

auto_increment_offset=1

auto_increment_increment=2

(mysql中有自增长字段,在做数据库的主主同步时需要设置自增长的两个相关配置:

auto_increment_offset和auto_increment_increment。

auto_increment_offset表示自增长字段从那个数开始,他的取值范围是1-65535

auto_increment_increment表示自增长字段每次递增的量,其默认值是1,取值范围是1-65535

在主主同步配置时,需要将两台服务器的auto_increment_increment增长量都配置为2,而要把auto_increment_offset分别配置为1和2,这样才可以避免两台服务器同时做更新时自增长字段的值之间发生冲突。)

replicate-do-db=all      #允许slave同步哪个库

重启mysqld服务

[[email protected]~]# /etc/init.d/mysqld restart

Shuttingdown MySQL. SUCCESS!

StartingMySQL.. SUCCE

b.    在192.168.137.12上

[[email protected] ~]# vim /etc/my.cnf

[client]

port            = 3306

socket          = /tmp/mysql.sock

[mysqld]

port            = 3306

socket          = /tmp/mysql.sock

skip-external-locking

key_buffer_size= 384M

max_allowed_packet= 1M

table_open_cache= 512

sort_buffer_size= 2M

read_buffer_size= 2M

read_rnd_buffer_size= 8M

myisam_sort_buffer_size= 64M

thread_cache_size= 8

query_cache_size= 32M

thread_concurrency= 8

datadir=/mydata/data/

log-bin=mysql-bin

server-id       = 2

auto_increment_offset=2

auto_increment_increment=2

[mysqldump]

quick

max_allowed_packet= 16M

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size= 256M

sort_buffer_size= 256M

read_buffer= 2M

write_buffer= 2M

[mysqlhotcopy]

interactive-timeout

[mysql_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

replicate-do-db=all

修改了server-id=2 还有auto_increment_increment=2

其他没变化,然后重启下mysql服务。

c.     搭建mysql主从

在192.168.137.11上操作

[[email protected] ~]# /usr/local/mysql/bin/mysql     #进入数据库

mysql> grant replication slave  on *.* to [email protected]‘192.168.137.12‘ identifiedby ‘123456‘;

Query OK, 0 rows affected (0.01 sec)

mysql> show master status ;

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

| File             | Position | Binlog_Do_DB |Binlog_Ignore_DB |

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

| mysql-bin.000004 |      268 |              |                  |

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

1 row in set (0.01 sec)

在192.168.137.12mysql从上操作

[[email protected] ~]# /usr/local/mysql/bin/mysql     #进入数据库

mysql> change master tomaster_host=‘192.168.137.11‘,master_user=‘tongbu‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000004‘,master_log_pos=268;

Query OK, 0 rows affected (0.03 sec)

mysql> start slave ;

Query OK, 0 rows affected (0.00 sec)

mysql> show slave status \G

*************************** 1. row***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.137.11

Master_User: tongbu

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000004

Read_Master_Log_Pos: 268

Relay_Log_File: localhost-relay-bin.000002

Relay_Log_Pos: 253

Relay_Master_Log_File: mysql-bin.000004

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

.....省略

只要看到io线程和sql线程都是yes代表,mysql主从搭建完毕。

测试mysql主从。

在mysql主上创建数据库(192.168.137.11)

mysql> create database bbs ;

Query OK, 1 row affected (0.00 sec)

mysql> show databases ;

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

| Database           |

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

| information_schema |

|bbs                |

| mysql              |

| performance_schema |

| test               |

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

5 rows in set (0.00 sec)

在mysql从上查看是否创建bbs数据库。(192.168.137.12)

mysql> show databases;

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

| Database           |

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

| information_schema |

|bbs                |

| mysql              |

| performance_schema |

| test               |

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

5 rows in set (0.00 sec)

测试完成,mysql主从已经搭建完成,下面开始搭建mysql主主。

3.    配置mysql主主

a.    首先删除mysql主下面的,mysql-bin.index 和下面的日志

[[email protected] ~]# cd /mydata/data/

[[email protected] data]# ls

bbs    ibdata1      mysql             mysql-bin.000003  performance_schema

hx.err ib_logfile0  mysql-bin.000001  mysql-bin.000004  test

hx.pid ib_logfile1  mysql-bin.000002  mysql-bin.index

[[email protected] data]# rm -rf mysql-bin.*

b.    在mysql主上授权(192.168.137.12)

[[email protected] ~]#/usr/local/mysql/bin/mysql   #进去mysql数据库

mysql> grant replication slave on *.* [email protected]‘192.168.137.11‘ identified by ‘123456‘;

Query OK, 0 rows affected (0.00 sec)

mysql> show master status ;

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

| File             | Position | Binlog_Do_DB |Binlog_Ignore_DB |

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

| mysql-bin.000004 |      267 |              |                  |

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

1 row in set (0.01 sec)

c.     在mysql从上设置节点,和主ip

[[email protected] data]# /usr/local/mysql/bin/mysql

mysql> change master tomaster_host=‘192.168.137.12‘,master_user=‘tongbu‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000004‘,master_log_pos=267;

Query OK, 0 rows affected (0.01 sec)

mysql> slave start;

Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G

*************************** 1. row***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.137.12

Master_User: tongbu

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000004

Read_Master_Log_Pos: 267

Relay_Log_File: hx-relay-bin.000002

Relay_Log_Pos: 253

Relay_Master_Log_File: mysql-bin.000004

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

....省略

另一方的mysql从上也搭建好了,我们可以来测试mysql主主了。

d.    测试mysql主主

在192.168.137.11 和 192.168.137.12 上分别创建bbs1 和 bbs2

测试成功,mysql主主搭建完毕。看下图..

时间: 2024-10-24 22:52:28

搭建mysql主主的相关文章

基于keepalived搭建mysql双主高可用

目录 概述 环境准备 keepalived搭建 mysql搭建 mysql双主搭建 mysql双主高可用搭建 概述 传统(不借助中间件)的数据库主从搭建,如果主节点挂掉了,从节点只能读取无法写入,只能把人肉去恢复故障,既不想引用中间件也不想人肉恢复故障,可以折中选择双主方案,本文将介绍通过keepalived搭建mysql双主方案. 本例中vip为:172.16.0.169,  两台mysql实例服务器ip分别为:172.16.0.1和172.16.0.2 转帖请注明来源: https://my

CentOS-7.5 搭建 MySQL 双主

MySQL双主:两台MySQL服务器互为主从 一.实验环境两台同样配置的CentOS-7.5虚拟机:两台虚机的防火墙+selinux均关闭:两台虚机均可以上外网:master_a:CentOS-1(192.168.218.128)master_b:CentOS-2 (192.168.218.136) 二.安装MySQL服务 1)两台服务器同时安装MySQL服务说明:因为本人之前已经写过"CentOS-7.5 安装 社区版 MySQL-5.7"这样的博文,所以在此就不在做重复性动作了:两

通过KeepAlived搭建MySQL双主模式的高可用集群系统

企业级MySQL集群具备高可用.可扩展.易管理.低成本的特点.下面将介绍企业环境中经常应用的一个解决方案,即MySQL的双主互备架构,主要设计思路是通过MySQL Replication技术将两台MySQL Server互相将对方作为自己的Master,自己又同时作为对方的Slave来进行复制.这样就实现了高可用构架中的数据同步功能,同时,将采用KeepAlived来实现Mysql的自动failover.在这个构架中,虽然两台MySQL Server互为主从,但同一时刻只有一个MySQL Ser

搭建MySQL一主多从————VMware Workstation 虚拟机nat网络配置(一)

运行 VMware Workstation Pro 在桌面找到该图标,双击运行即可,如果没有安装请下载安装.流程编辑 ==>虚拟网络编辑器 ==> VMnet0 如果没有 添加网络 最后设置完后,点击确定即可. 配置虚拟机网络点击确定即可. 原文地址:http://blog.51cto.com/3622288/2083948

搭建MySQL的主从、半同步、主主复制架构

复制其最终目的是让一台服务器的数据和另外的服务器的数据保持同步,已达到数据冗余或者服务的负载均衡.一台主服务器可以连接多台从服务器,并且从服务器也可以反过来作为主服务器.主从服务器可以位于不同的网络拓扑中,由于mysql的强大复制功能,其复制目标可以是所有的数据库,也可以是某些数据库,甚至是某个数据库中的某些表进行复制. MySQL支持的两种复制方案:基于语句复制,基于行复制基于语句复制基于行复制,这两种复制方式都是通过记录主服务器的二进制日志中任何有可能导致数据库内数据发生改变的SQL语句到中

Docker Mysql主主同步配置搭建Demo

主主同步配置和主从配置很相似,仅需稍做修改就可以了,对主从配置有疑问可以查看 上一篇文章. 进行Docker操作前,先建立目录,我的路径是d:/docker/mysql,目录结构如下: --mysql    --mone       --data        --conf          --my.cnf        --mtwo       --data        --conf          --my.cnf  1.主主配置文件 Mone: my.cnf [mysqld] ser

mysql 主主同步服务器的搭建

首先安装好数据库  这里用的是mysql5.6.15版本的 [[email protected] ~]# rpm -Uvh MySQL-*.rpmPreparing...                ########################################### [100%]   1:MySQL-devel            ########################################### [ 14%]   2:MySQL-client    

lvs+keepalived+mysql主主复制集群搭建

MySQL服务器:192.168.2.134,192.168.2.135 MySQL主从同步的数据库为:chaosdb 实现目的: 增加两台服务器(主备),通过LVS+Keepalived实现MySQL从库读操作负载均衡 架构规划: 操作系统:CentOS 6.X 64位 LVS主服务器:192.168.2.133 LVS备服务器:192.168.2.132 LVS虚拟服务器(VIP):192.168.2.137 部署完成之后,通过VIP:192.168.21.254,根据LVS调度算法来访问后

MySql系统主主复制搭建手册

Mysql主主复制操作手册 主从复制的原理:(见下图)   第一步:在每个更新数据的事物完成之前,主服务器都会把数据更改记录到二进制日志中.即使事物在执行期间是交错的,mysql也会串行地把事物写入到二进制日志中,写入完成之后,主服务器告诉存储引擎提交事物.  第二步:从服务器把主服务器的二进制日志拷贝到自己的硬盘,即"中继日志"中.首先,它启动一个工作线程,叫I/O从线程.这个I/O线程开启一个普通的客户端连接,然后启动一个特殊的二进制日志存储进程(binlog dump)进程.这个