本文共 4882 字,大约阅读时间需要 16 分钟。
#
# TiDB :A Distributed SQL Database
# github :https://github.com/pingcap/tidb
# doc : https://github.com/pingcap/docs-cn
#
#架构
Name | Host IP | Services |
node1 | 192.168.174.134 | PD, TiDB |
node2 | 192.168.174.136 | TiKV1 |
node3 | 192.168.174.137 | TiKV2 |
node4 | 192.168.174.138 | TiKV3 |
#软件下载(每台都需操作)
1 2 3 | [root@node1 ~] # wget http://download.pingcap.org/tidb-latest-linux-amd64.tar.gz [root@node1 ~] # tar -xf tidb-latest-linux-amd64.tar.gz -C /usr/local/ [root@node1 ~] # mkdir /data/tidb/{data,log} -p |
#开启服务(注:集群的启动顺序不能错)
#在node1开启PD
1 2 3 4 | [root@node1 ~] # /usr/local/tidb-latest-linux-amd64/bin/pd-server --name=pd1 \ --data- dir = /data/tidb/data --client-urls= "http://192.168.174.134:2379" \ --peer-urls= "http://192.168.174.134:2380" --initial-cluster= "pd1=http://192.168.174.134:2380" \ --log- file = /data/tidb/log/pd .log & |
参数解释:https://github.com/pingcap/docs-cn/blob/master/op-guide/configuration.md#tidb
#在node2 node3 node4 上开启 TiKV
1 2 3 | [root@node2 ~] # /usr/local/tidb-latest-linux-amd64/bin/tikv-server --pd="192.168.174.134:2379" --addr="192.168.174.136:20160" --data-dir=/data/tidb/data --log-file=/data/tidb/log/tikv.log & [root@node3 ~] # /usr/local/tidb-latest-linux-amd64/bin/tikv-server --pd="192.168.174.134:2379" --addr="192.168.174.137:20160" --data-dir=/data/tidb/data --log-file=/data/tidb/log/tikv.log & [root@node4 ~] # /usr/local/tidb-latest-linux-amd64/bin/tikv-server --pd="192.168.174.134:2379" --addr="192.168.174.138:20160" --data-dir=/data/tidb/data --log-file=/data/tidb/log/tikv.log & |
参数解释:https://github.com/pingcap/docs-cn/blob/master/op-guide/configuration.md#tidb
#在node1 上开启TiDB
1 | [root@node1 ~] # /usr/local/tidb-latest-linux-amd64/bin/tidb-server --store=tikv --path="192.168.174.134:2379" --log-file=/data/tidb/log/tidb.log & |
#登陆数据库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | [root@node1 ~] # yum install -y mariadb #安装mariadb数据库客户端 [root@node1 ~] # mysql -uroot -h 192.168.174.134 -P 4000 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.1-TiDB-1.0 MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]> show databases; +--------------------+ | Database | +--------------------+ | INFORMATION_SCHEMA | | PERFORMANCE_SCHEMA | | mysql | | test | +--------------------+ 4 rows in set (0.00 sec) MySQL [(none)]> select host,user from mysql.user ; +------+------+ | host | user | +------+------+ | % | root | +------+------+ 1 row in set (0.00 sec) MySQL [(none)]> exit Bye |
#集群状态
TiDB 对外暴露的 HTTP 接口是 http://host:port/status,默认的端口号是 10080 (可以通过 --status 参数设置),
可以通过访问这个接口获取当前 TiDB Server 的状态,以及判断是否存活。返回结果是 Json 格式:
1 2 | [root@node1 ~] # curl 192.168.174.134:10080/status { "connections" :0, "version" : "5.7.1-TiDB-1.0" , "git_hash" : "d6ec37bb4219e95babce41bd0400d04d84b1fb88" } |
PD Server
PD API 地址: http://${host}:${port}/pd/api/v1/${api_name}
其中 port 默认为 2379,各类 api_name 详细信息参见
https://cdn.rawgit.com/pingcap/docs/master/op-guide/pd-api-v1.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | [root@node1 ~] # curl 192.168.174.134:2379/pd/api/v1/stores { "count" : 3, "stores" : [ { "store" : { "id" : 1, "address" : "192.168.174.138:20160" , "state" : 0, "state_name" : "Up" }, "status" : { "store_id" : 1, "capacity" : "19 GB" , "available" : "17 GB" , "leader_count" : 1, "region_count" : 1, "sending_snap_count" : 0, "receiving_snap_count" : 0, "applying_snap_count" : 0, "is_busy" : false , "start_ts" : "2017-05-13T03:16:51+08:00" , "last_heartbeat_ts" : "2017-05-13T03:23:58.709890548+08:00" , "uptime" : "7m7.709890548s" } }, { "store" : { "id" : 4, "address" : "192.168.174.137:20160" , "state" : 0, "state_name" : "Up" }, "status" : { "store_id" : 4, "capacity" : "19 GB" , "available" : "16 GB" , "leader_count" : 0, "region_count" : 1, "sending_snap_count" : 0, "receiving_snap_count" : 0, "applying_snap_count" : 0, "is_busy" : false , "start_ts" : "2017-05-12T18:17:02+08:00" , "last_heartbeat_ts" : "2017-05-13T03:24:00.555315502+08:00" , "uptime" : "9h6m58.555315502s" } }, { "store" : { "id" : 5, "address" : "192.168.174.136:20160" , "state" : 0, "state_name" : "Up" }, "status" : { "store_id" : 5, "capacity" : "16 GB" , "available" : "13 GB" , "leader_count" : 0, "region_count" : 1, "sending_snap_count" : 0, "receiving_snap_count" : 0, "applying_snap_count" : 0, "is_busy" : false , "start_ts" : "2017-05-12T18:17:02+08:00" , "last_heartbeat_ts" : "2017-05-13T03:23:56.955220422+08:00" , "uptime" : "9h6m54.955220422s" } } ] } [root@node1 ~] # |