帮助中心
如何在Ubuntu 18.04上安装CockroachDB集群

CockroachDB是一个可扩展的分布式SQL数据库,可以在本地,云端甚至跨云部署,它是一个始终在线的数据库集群,可以具有附加位置,以确保用户的低延迟,无论他们身在何处,CockroachDB还能够在磁盘、机器、机架甚至数据中心故障中幸存,并且延迟时间几乎为零,无需人工干预。


我们将帮助你完成在Ubuntu Server 18.04上安装CockroachDB集群的过程。


前期的准备工作

为了使此过程有效,您需要准备:


* 三台按照Ubuntu Server 18.04的服务器或云服务器。

* 具有sudo权限的帐户


对于我们的Ubuntu服务器,我们将使用以下主机名/ IP地址:

* cockroachdbcontrol 192.168.1.7

* cockroachnode2 192.168.1.8

* cockroachnode3 192.168.1.9

当然,您可以使用您需要的任何主机名和IP地址,如果您确实更改了这些,请务必在本教程中进行更改。


同步时间

首先,确保服务器的时钟同步,为此,请安装chrony。 

在每台服务器上打开一个终端窗口并发出命令:

sudo apt-get install chrony -y


安装后,您需要使用您所在国家/地区的NTP池配置chrony。在每台服务器上,发出命令:

sudo nano /etc/chrony/chrony.conf


您需要编辑默认的NTP池行,并将其替换为您所在国家/地区的行。例如,在美国,这些行将是:

pool 0.us.pool.ntp.org iburst maxsources 1

pool 1.us.pool.ntp.org iburst maxsources 1

pool 2.us.pool.ntp.org iburst maxsources 2

pool 3.us.pool.ntp.org iburst maxsources 2


保存并关闭这些文件,使用以下命令重新启动并启用chrony:

sudo systemctl restart chrony

sudo systemctl enable chrony


安装CockroachDB

CockroachDB未通过标准方式安装。相反,您需要下载二进制文件,将其解压缩并将其移动到正确的目录中。这是通过以下命令完成的:

wget https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz

tar -xvzf cockroach-latest.linux-amd64.tgz

sudo cp cockroach  -  * / cockroach / usr / local / bin /


创建必要的证书

接下来,为了彼此通信,每个CockroachDB服务器都需要证书,这可以通过USntu Server附带的OpenSSL来完成。首先要做的是创建必要的目录来存放证书,然后为目录设置环境变量。这是在所有三台服务器上完成的。


首先,使用以下命令创建必要的目录:

mkdir -p $ {HOME} /.cockroach-certs /


接下来,使用以下命令设置环境变量:

export COCKROACH_CERTS_DIR ='$ {HOME} /.cockroach-cert


转到cockroachdbcontrol并使用以下命令生成证书颁发机构:

cockroach cert create-ca --certs-dir = $ COCKROACH_CERTS_DIR --ca-key = $ COCKROACH_CERTS_DIR / ca.key


现在,我们可以使用scp命令将该密钥复制到其他服务器,并使用以下命令(在cockroachdbcontrol上运行):

scp~ / .cockroach-certs / ca.crt~ / .cockroach-certs / ca.key USER@192.168.1.8:~ / .cockroach-certs /

scp~ / .cockroach-certs / ca.crt~ / .cockroach-certs / ca.key USER@192.168.1.9:〜/ .cockroach-certs /


USER是用于在两个节点上创建证书目录的用户帐户。

接下来,我们需要创建将用于保护SQL shell和集群之间通信的客户端证书。必须在所有三台服务器上运行以下命令:

cockroach cert create-client root --certs-dir = $ COCKROACH_CERTS_DIR --ca-key = $ COCKROACH_CERTS_DIR / ca.key


最后,我们必须创建服务器证书。在cockroachdbcontrol上发出以下命令:

cockroach cert create-node localhost $(hostname)192.168.1.7 --certs-dir = $ COCKROACH_CERTS_DIR --ca-key = $ COCKROACH_CERTS_DIR / ca.key


在cockroachnode2上发出以下命令:

cockroach cert create-node localhost $(hostname)192.168.1.8 --certs-dir = $ COCKROACH_CERTS_DIR --ca-key = $ COCKROACH_CERTS_DIR / ca.key


在cockroachnode3上发出以下命令:

cockroach cert create-node localhost $(hostname)192.168.1.9 --certs-dir = $ COCKROACH_CERTS_DIR --ca-key = $ COCKROACH_CERTS_DIR / ca.key


初始化群集

是时候初始化我们的集群了。在cockroachdbcontrol上,发出命令:

cockroach start --background --certs-dir = $ COCKROACH_CERTS_DIR --advertise-host = 192.168.1.7 --listen-addr = 192.168.1.7


您可以使用以下命令检查群集节点状态:

cockroach node status --host=192.168.1.7



加入节点

在控制器接受连接的情况下,我们现在可以加入节点。转到cockroachnode2并发出命令:

cockroach start --background --certs-dir = $ COCKROACH_CERTS_DIR --advertise-host = 192.168.1.8 --listen-addr = 192.168.1.8 --join = 192.168.1.7:26257


接下来,转到cockroachnode3并发出命令:

cockroach start --background --certs-dir = $ COCKROACH_CERTS_DIR --advertise-host = 192.168.1.9 --listen-addr = 192.168.1.9 --join = 192.168.1.7:26257


返回到cockroachdbcontrol并发出命令:

cockroach node status --host=192.168.1.7


您现在应该看到所有节点都已连接到集群



创建数据库用户

回到cockroachdbcontrol并首先使用以下命令登录shell来创建数据库:

cockroach sql --certs-dir = $ COCKROACH_CERTS_DIR --host = 192.168.1.7


使用以下命令创建数据库用户:

CREATE USER username WITH PASSWORD 'password';

其中username是用户名,密码是强密码。


创建用户后,您可以通过http:// SERVER_IP:8080(其中SERVER_IP是cockroachdbcontrol的IP地址)登录到CockroachDB Web界面,并使用您在CockroachDB shell中创建的用户名和密码登录服务。登录后,您可以从用户友好的基于Web的界面开始管理数据库



准备开始运行

这就是设置CockroachDB集群的全部内容,您的可伸缩数据库现在已准备就绪,借助Web界面,您可以轻松创建和管理数据库和群集。

购物车