一主两从加Gaea实现读写分离

## 一主两从加Gaea读写分离

### 1、一主两从搭建

1.1、先通过脚本搭建好三台MySQL服务,并规划好主从

```powershell

master(主)

slave1(从)

slave2(从)

```

1.2、修改每台my.cnf文件

```bash

#在[mysqld]下添加

server-id=1 #每台mysql不能相同

log-bin=mysql-bin

#在其中一台从库添加

replicate-do-db=db1 #设定需要复制的库

replicate-do-table=db1.table #设定需要复制的表

```

通过脚本搭建的mysql还需要修改以下文件

```bash

#进入容器

docker exec -it mysql bash

cat /var/lib/mysql/auto.cnf #通过脚本搭建此文件会相同

#修改此文件(容器内没有vi、vim命令)

sed -i 's#原内容#修改后的内容#g' /var/lib/mysql/auto.cnf

#检查是否修改成功

cat /var/lib/mysql/auto.cnf

#退出并重启容器

docker restart mysql

```

1.3、登录到master数据库

```bash

docker exec -it mysql bash

mysql -uroot -p

show master status; #记住前两项的值

#创建连接从库的用户

grant replication slave on *.* to 用户名@'%' identified by '密码';

```

1.4、登录slave1、slave2数据库(操作相同)

```bash

docker exec -it mysql bash

mysql -uroot -p

#通过刚刚创建的用户连接到主库

change master to master_host='主库所在IP',master_port='主库端口',master_user='用户名',master_password=密码,master_log_file='值1',master_log_pos=值2;

start slave; #开启同步

show slave status\G

#确保slave_IO_Running和slave_SQL_Running两项的值都为yes即为成功

```

### 2、Gaea读写分离

1、将两个包上传到服务器

```bash

Gaea-1.2.2.tar.gz  gaea.tar.gz

#上传容器镜像

docker load -i gaea.tar.gz

#解压配置包

tar -zxf Gaea-1.2.2.tar.gz

mkdir -p /mydata/gaea-docker

#将配置拷到映射目录

cp -r /Gaea-1.2.2/etc /mydata/gaea-docker/etc

#创建容器

docker run --restart=always --privileged=true -p 13306:13306 --name gaea -v /mydata/gaea-docker/etc:/go/gaea/etc -d gaea:1.2.2

```

2、编辑配置文件,连接主从数据库

```bash

cd /mydata/gaea-docker/etc/file/namespace

#编辑配置文件

vim mail_namespace_1.json

```

连接一主一从,连接没加限制库表配置的从节点

```yaml

{……

    "allowed_dbs": {

        "db": true,

        "db2": true

    }#允许访问的库

    ……

    "slices": [

        {

            "name": "slice-0",

            "user_name": "root",#数据库账号

            "password": "password",#数据库密码

            "master": "主节点IP",

            "slaces": ["从节点IP"],

            ……

        }

    ]

    ……

    "users": [

        {

            "user_name": "macro",#登录使用的账号

            "password": "123456",#登录使用的密码

            ……

        }

    ]

```

3、登录

通过所在服务器的IP加13306端口,配置文件中用于登录的账号密码。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值