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

启动一个本地集群

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

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

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

不安全的(非加密)

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

➜  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.对于每个集群中的节点, 重复第一步的命令, 并附加额外的标记:sql

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

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

  • 设置--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 能够查看数据的管理控制台. 这在启动数据库的输出当中有提示.post

相关文章
相关标签/搜索