centos7 使用 mysql router 8.0.16 实现读写分离

参考链接

前提条件

准备好两个 mysql 实例,并实现了主从复制。

下载 mysql-router

下载 mysql-router-8.0.16-linux-glibc2.12-x86_64.tar.xz,然后解压

1wget http://mirrors.163.com/mysql/Downloads/MySQL-Router/mysql-router-8.0.16-linux-glibc2.12-x86_64.tar.xz
2tar -Jxvf mysql-router-8.0.16-linux-glibc2.12-x86_64.tar.xz -C /app

创建软连接

1ln -s /app/mysql-router-8.0.16-linux-glibc2.12-x86_64 /usr/local/mysql-router

然后把目录 /usr/local/mysql-router/bin 添加到环境变量中。

创建 mysql router 数据存放的基本目录

1mkdir -p /app/mysqlrouterdata/{data,log,run}

创建配置文件

根据 mysql router 的配置文件模板,创建配置文件:

1cp /usr/local/mysql-router/share/doc/mysqlrouter/sample_mysqlrouter.conf /app/mysqlrouterdata/mysqlrouter.conf

编辑配置文件:

1vi /app/mysqlrouterdata/mysqlrouter.conf

文件内容如下:

 1[DEFAULT]
 2user=mysql
 3logging_folder=/app/mysqlrouterdata/log
 4plugin_folder=/usr/local/mysql-router/lib/mysqlrouter
 5# config_folder=
 6runtime_folder=/app/mysqlrouterdata/run
 7data_folder=/app/mysqlrouterdata/data
 8keyring_path=/app/mysqlrouterdata/data/keyring-data
 9master_key_path=/app/mysqlrouterdata/data/keyring-key
10connect_timeout=5
11read_timeout=30
12
13[logger]
14level = INFO
15
16[routing:router_rw]
17bind_address=0.0.0.0
18bind_port=6446
19destinations=127.0.0.1:3306
20routing_strategy=next-available
21
22[routing:router_ro]
23bind_address=0.0.0.0
24bind_port=6447
25destinations=127.0.0.1:3307
26routing_strategy=round-robin
27
28[keepalive]
29interval = 60

改变 mysql router 文件夹权限

1chown -R mysql:mysql /app/mysqlrouterdata

启动 mysql router

1mysqlrouter --config=/app/mysqlrouterdata/mysqlrouter.conf &

停止 mysql router

在终端中查看 mysql router 进程信息,然后 kill 掉即可。

1ps -ef | grep mysqlrouter