[Translate] CockroachDB: 启动一个本地集群

启动一个本地集群

CockroachDB 安装完成后, 可以本地启动一个单节点服务器多节点集群, 并通过内置的SQL客户端与服务器通信. 集群可以是不安全的安全的方式启动.

  • 不安全的
    这是启动集群和学习CockroachDB的最快方法(), 但在客户端和服务器之间没有验证和加密, 因此它仅限于测试和开发.
  • 安全的
    启动一个带有验证的, 加密的客户端/服务端通信, 需要创建证书用于客户端和服务器端的通信.

要把 CockroachDB 部署在产品环境中? 查看 手工部署云部署

不安全的(非加密)

1.从包含cockroach的目录,启动第一个节点:

➜  cockroach git:(master) ./cockroach start --insecure
build:     alpha.v1-735-gbfab4ae @ 2016/03/08 05:20:06 (go1.6)
admin:     http://localhost:26257
sql:       postgresql://root@localhost:26257?sslmode=disable
logs:      cockroach-data/logs
store[0]:  path=cockroach-data
  • --insecure 设置通信模式为非安全模式. 服务器默认在端口26257监听客户端请求, 如要绑定到其他端口, 使用--port=<port>参数.
  • 节点存储默认为cockroach-data目录. 要存储到不同的位置, 设置--store=<filepath>. 要使用多个存储, 但对为每一个设置该编辑.
  • 输出给出了一些CockroachDB版本等一些有帮助的信息, 管理UI的URL, 客户端节点的SQL URL, 以及节点数据和日志的存储位置.

2.对于每一个集群中的节点, 重复第一步的命令, 并附加额外的标记:

$ ./cockroach start --insecure --store=<filepath> --port=26258 --join=localhost:26257 &
  • 设置--store参数指定一个未被其他节点使用的存储位置. 要使用多个存储, 分别为每一个设置该标记

详细的参数可通过 ./cockroach start --help 查看:

  • 设置--port标记, 指定一个未被使用的端口
  • --join 参数加入该节点到集群. 设置该参数 localhost 和第一个节点的端口号
  1. 使用内置的SQL客户端, 运行SQL语句
$ ./cockroach sql --insecure
# Welcome to the cockroach SQL interface.
# All statements must be terminated by a semicolon.
# To exit: CTRL + D.

root@:26257> CREATE DATABASE bank;
CREATE DATABASE

root@:26257> SET DATABASE = bank;
SET DATABASE

root@:26257> CREATE TABLE accounts (id INT PRIMARY KEY, balance DECIMAL);
CREATE TABLE

root@26257> INSERT INTO accounts VALUES (1234, DECIMAL '10000');
INSERT 1

root@26257> SELECT * FROM accounts;
+------+---------+
|  id  | balance |
+------+---------+
| 1234 |   10000 |
+------+---------+
  1. 浏览器指向 http://localhost:26257 可以查看数据的管理控制台. 这在启动数据库的输出当中有提示.

安全的(加密通信)

1.在 cockroach 二进制程序所在的目录, 创建安全证书:

$ mkdir certs
$ ./cockroach cert create-ca --ca-cert=certs/ca.cert --ca-key=certs/ca.key
$ ./cockroach cert create-node localhost $(hostname) --ca-cert=certs/ca.cert --ca-key=certs/ca.key --cert=certs/node.cert --key=certs/node.key
$ ./cockroach cert create-client root --ca-cert=certs/ca.cert --ca-key=certs/ca.key --cert=certs/root.cert --key=certs/root.key
  • 第一条命令创建一个新的目录用于存储证书文件
  • 第二条命令创建Certificate Authority (CA)证书和秘钥: ca.certca.key
  • 第三条命令创建节点证书和秘钥: node.certnode.key. 这些文件用于节点之间通信. 通常情况需要为每一个节点生成单独的这些文件, 因为每个节点都有其唯一的地址, 因为我们在本地运行左右节点, 这里只需要生成一个节点证书和秘钥.
  • 第四个命令创建客户端证书和秘钥, 比如对于root用户: root.certroot.key. 这些文件用于内置客户端和集群之间的安全通信.

2.启动首个节点

$ ./cockroach start --ca-cert=certs/ca.cert --cert=certs/node.cert --key=certs/node.key &

build:     alpha.v1-903-g51388a2 @ 2016/03/11 14:15:26 (go1.6)
admin:     https://ROACHs-MBP:8080
sql:       postgresql://root@ROACHs-MBP:26257?sslcert=%2FUsers%2F...
logs:      cockroach-data/logs
store[0]:  path=cockroach-data
  • --ca-cert, --cert, 以及 --key 参数指向在第一个中创建的CA证书, 以及节点证书和秘钥.
  • 安全的内部和客户端通信端口为26257, 默认的HTTPS端口为8080. 要绑定不同的端口, 设置--port=<port>--http-port=<port>参数.
  • 节点的数据默认存储在cockroach-data目录. 要存储到其他位置, 设置--store=<filepath>参数. 要使用多个存储设备, 对每个设备分别设置.
  • 输出给出了一些CockroachDB版本等一些有帮助的信息, 管理UI的URL, 客户端节点的SQL URL, 以及节点数据和日志的存储位置.

3.对每个其他节点,重复步骤二, 并添加额外的参数:

$ ./cockroach start --store=node2-data --port=26258 --http-port=8081 --join=localhost:26257 --ca-cert=certs/ca.cert --cert=certs/node.cert --key=certs/node.key &
  • 设置--store参数指定一个未被其他节点使用的存储位置. 要使用多个存储, 分别为每一个设置该标记
  • 设置--port--http-port参数, 指定未被使用的端口
  • --join 参数加入该节点到集群. 设置该参数 localhost 和第一个节点的端口号

4.使用内置的SQL客户端, 运行SQL语句

$ ./cockroach sql --ca-cert=certs/ca.cert --cert=certs/root.cert --key=certs/root.key
# Welcome to the cockroach SQL interface.
# All statements must be terminated by a semicolon.
# To exit: CTRL + D.
  • --ca-cert--cert, 以及--key参数指向CA证书以及在第一步创建的root用户的证书和秘钥.
  • 安全通信的默认端口为26257, 要指定不同的端口, 设置--port=<port>参数.
  1. 运行 CockroachDB SQL语句
root@:26257> CREATE DATABASE bank;
CREATE DATABASE

root@:26257> SET DATABASE = bank;
SET DATABASE

root@:26257> CREATE TABLE accounts (id INT PRIMARY KEY, balance DECIMAL);
CREATE TABLE

root@26257> INSERT INTO accounts VALUES (1234, DECIMAL '10000');
INSERT 1

root@26257> SELECT * FROM accounts;
+------+---------+
|  id  | balance |
+------+---------+
| 1234 |   10000 |
+------+---------+

5.浏览器指向 http://localhost:8080 可以查看数据的管理控制台. 这在启动数据库的输出当中有提示.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值