[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

相關文章
相關標籤/搜索