cetus/doc/cetus-quick-try.md

84 lines
3.9 KiB
Markdown
Raw Normal View History

2018-03-06 15:34:44 +08:00
# Cetus 快速入门
## 环境说明
MySQL建议使用5.7.16以上版本若使用读写分离功能则需要搭建MySQL主从关系若使用sharding功能则需要根据业务进行分库设计创建用户和密码并确认Cetus可以远程登录MySQL具体说明详见[Cetus MySQL准备说明](https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-mysql-prepare.md)。
2018-03-06 15:34:44 +08:00
## 安装
Cetus只支持linux系统安装步骤参考[Cetus 安装说明](https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-install.md)安装成功后Cetus提供了示例配置文件在/home/user/cetus_install/conf/目录下,以.example结尾用户可根据需求进行修改配置修改根据安装的不同版本详见[Cetus 读写分离版配置文件说明](https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-rw-profile.md)、[Cetus 分库(sharding)版配置文件说明](https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-shard-profile.md)。
2018-03-06 15:34:44 +08:00
## 部署
若使用读写分离功能则可以配置一主多从结构即配置一个主库0个或多个从库若使用sharding功能则可以根据分库规则配置多个后端数据库。
## 启动
```
bin/cetus --defaults-file=conf/proxy.conf|shard.conf [--conf-dir/home/user/cetus_install/conf/]
```
## 连接
Cetus对外暴露两类端口proxyshard端口和admin端口。proxyshard端口是Cetus的应用端口用来与后台数据库和前端应用进行交互admin端口是Cetus的管理端口用户可以连接Cetus的管理端口对Cetus的后端状态、配置参数等进行查看和修改。
### 1. 连接Cetus应用端口
```
$ mysql --prompt="proxy> " --comments -h**.**.**.** -P**** -u**** -p***
proxy>
```
在连接Cetus时使用在配置文件中确认好的用户名和密码登陆登陆的ip和端口为Cetus监听的proxy-address的ip和端口。
可同时启动监听同一个ip不同端口的Cetus。连接应用端口之后可正常发送Cetus兼容的sql语句。
具体使用说明根据版本情况详见[Cetus 读写分离版使用指南](https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-rw.md)、[Cetus 分库(sharding)版使用指南](https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-sharding.md)
2018-03-06 15:34:44 +08:00
### 2. 连接Cetus管理端口
2018-05-31 11:40:46 +08:00
**2.1 mysql客户端连接**
2018-03-06 15:34:44 +08:00
```
$ mysql --prompt="admin> " --comments -h**.**.**.** -P**** -u**** -p***
2018-05-31 11:40:46 +08:00
admin> show maintain status
```
**2.2 Python连接**
支持Python的pymysql模块和MySQLdb模块连接管理端口。
- pymysql
**注意:需要设置链接参数 autocommit=None**
```
#!/usr/bin/python
# -*- coding: utf-8 -*-
import pymysql as connector
conn = connector.connect(host="127.0.0.1", user="admin", passwd="admin", port=6666, autocommit=None )
cursor = conn.cursor()
cursor.execute("show maintain status")
data = cursor.fetchone()
print "maintain status: %s" % data
```
- MySQLdb
```
#!/usr/bin/python
# -*- coding: utf-8 -*-
import MySQLdb as connector
conn = connector.connect(host="127.0.0.1", user="admin", passwd="admin", port=6666)
cursor = conn.cursor()
cursor.execute("show maintain status")
data = cursor.fetchone()
print "maintain status: %s" % data
2018-03-06 15:34:44 +08:00
```
可以使用在配置文件中的admin用户名和密码登陆地址为admin-address的mysql对Cetus进行管理例如在查询Cetus的后端详细信息时可以登录后通过命令 select * from backends显示后端端口的地址、状态、读写类型以及读写延迟时间和连接数等信息。
2018-03-06 17:52:46 +08:00
具体使用说明根据版本情况详见[Cetus 读写分离版管理手册](https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-rw-admin.md)、[Cetus 分库(sharding)版管理手册](https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-shard-admin.md)
**注Cetus读写分离和分库两个版本的使用约束详见[Cetus 使用约束说明](https://github.com/Lede-Inc/cetus/blob/master/doc/cetus-constraint.md)**