如何在Ubuntu 20.04/18.04上安装ArangoDB

时间:2020-02-23 14:32:08  来源:igfitidea点击:

欢迎来到我们的教程,了解如何在Ubuntu 20.04/18.04上安装ArangoDB。 ArangoDB是一个多模型的开源数据库,具有用于图形,文档和键值的灵活数据模型。它是为使用类似SQL的查询语言或者JavaScript扩展的高性能应用程序而设计的。

ArangoDB符合ACID标准,旨在通过单击几下鼠标即可水平扩展。最重要的是,它还提供了用于与客户端进行通信的内部API。

ArangoDB不支持SQL,因为它带有自己的称为AQL(ArangoDB查询语言)的声明性语言。对于数据库的所有数据模型,AQL是一种类似于SQL的查询语言。

ArangoDB的主要功能

它是完全开源的,并在Apache 2.0许可证下发布。具有灵活的数据建模功能,可让我们将数据建模为键值对,文档或者图形的组合,非常适合社会关系提供强大的查询语言(AQL)进行修改和我们可以使用可选的事务一致性和隔离性在多个文档或者集合上运行查询对复制和分片的支持:我们可以在主从配置中设置数据库或者在多个服务器之间分布更大的数据集可以将ArangoDB用作应用程序服务器和通过将应用程序和数据库融合在一起,以实现最大吞吐量。通过对SSD和大型缓存等现代存储硬件的支持,良好的存储可提高性能和数据持久性。ArangoDB可以轻松地部署为容错的分布式状态机,可以用作分布式设备的动物大脑

在Ubuntu 20.04/18.04上安装ArangoDB

在Ubuntu 20.04/18.04上安装ArangoDB的过程非常简单。本教程将演示ArangoDB的单实例安装,但我们也可以执行以下操作:主/从安装活动故障转移安装群集安装多个数据中心和独立代理安装

这些软件包可以在Apt存储库中轻松获得。唯一需要做的手动工作就是使用以下命令将apt信息库添加到系统中。

添加ArangoDB Apt存储库

运行以下命令以将apt存储库添加到系统。

echo 'deb https://download.arangodb.com/arangodb34/DEBIAN//' | sudo tee /etc/apt/sources.list.d/arangodb.list

导入存储库密钥

下一步是导入用于对软件包进行签名的GPG密钥。

wget -q https://download.arangodb.com/arangodb34/DEBIAN/Release.key -O- | sudo apt-key add 

我们应该看到OK消息作为输出。

更新系统并安装ArangoDB

更新Apt包缓存,然后在Ubuntu 18.04上安装ArangoDB。

sudo apt update
sudo apt -y install apt-transport-https
sudo apt -y install arangodb3

在安装过程中,我们将需要回答几个问题。

  1. 设置数据库根密码

输入密码并确认。

  1. 选择是否自动升级数据库文件。

  2. 选择要使用的数据库存储引擎。

  3. 设置为在升级之前备份数据库。

等待安装完成,然后继续执行,在该步骤中,我们将使用systemd启动和管理ArangoDB服务。

如果我们在安装过程中没有设置根密码,可以在安装后通过运行以下命令保护ArangoDB的安全:

$sudo arango-secure-installation

启动ArangoDB服务

该服务应在安装后自动启动。如果尚未启动,则可以使用systemctl service management命令手动启动它。

sudo systemctl start arangodb3
sudo systemctl enable arangodb3

使用以下命令检查服务。

$systemctl status arangodb3
● arangodb3.service - ArangoDB database server
     Loaded: loaded (/lib/systemd/system/arangodb3.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2017-05-02 22:39:24 UTC; 1min 14s ago
   Main PID: 29622 (arangod)
      Tasks: 18 (limit: 131072)
     Memory: 221.9M
     CGroup: /system.slice/arangodb3.service
             └─29622 /usr/sbin/arangod --uid arangodb --gid arangodb --pid-file /var/run/arangodb3/arangod.pid --temp.path /var/tmp/arangodb3 --log.for>

Jan 02 22:39:24 ubuntu20 arangod[29622]: 2017-05-02T22:39:24Z [29622] INFO detected operating system: Linux version 5.4.0-26-generic (theitroad@localhost>
Jan 02 22:39:24 ubuntu20 arangod[29622]: 2017-05-02T22:39:24Z [29622] WARNING {threads} --server.threads (64) is more than eight times the number of co>
Jan 02 22:39:25 ubuntu20 arangod[29622]: 2017-05-02T22:39:25Z [29622] INFO {authentication} Jwt secret not specified, generating...
Jan 02 22:39:25 ubuntu20 arangod[29622]: 2017-05-02T22:39:25Z [29622] INFO using storage engine rocksdb
Jan 02 22:39:25 ubuntu20 arangod[29622]: 2017-05-02T22:39:25Z [29622] INFO {cluster} Starting up with role SINGLE
Jan 02 22:39:25 ubuntu20 arangod[29622]: 2017-05-02T22:39:25Z [29622] INFO {syscall} file-descriptors (nofiles) hard limit is 131072, soft limit is 131>
Jan 02 22:39:25 ubuntu20 arangod[29622]: 2017-05-02T22:39:25Z [29622] INFO {authentication} Authentication is turned on (system only), authentication f>
Jan 02 22:39:25 ubuntu20 systemd[1]: /lib/systemd/system/arangodb3.service:28: PIDFile= references a path below legacy directory /var/run/, updating /v>
Jan 02 22:39:25 ubuntu20 arangod[29622]: 2017-05-02T22:39:25Z [29622] INFO using endpoint 'http+tcp://127.0.0.1:8529' for non-encrypted requests
Jan 02 22:39:26 ubuntu20 arangod[29622]: 2017-05-02T22:39:26Z [29622] INFO ArangoDB (version 3.4.9 [linux]) is ready for business. Have fun!

该状态应返回运行状态。

在Ubuntu上启动ArangoDB Shell

要启动ArangoDB shell,请运行:

$arangosh
Please specify a password: 

                                       _     
  __ _ _ __ __ _ _ __   __ _  ___  ___| |__  
/_` | '__/_` | '_ \/_` |/_ \/__| '_ \ 
| (_| | | | (_| | | | | (_| | (_) __ \ | | |
 __,_|_|  __,_|_| |_|__, |___/|___/_| |_|
                       |___/                

arangosh (ArangoDB 3.4.9 [linux] 64bit, using jemalloc, build tags/v3.4.9-0-g66c1edf2f8, VPack 0.1.33, RocksDB 5.16.0, ICU 58.1, V8 5.7.492.77, OpenSSL 1.1.0l  10 Sep 2019)
Copyright (c) ArangoDB GmbH

Command-line history will be persisted when the shell is exited.
Connected to ArangoDB 'http+tcp://127.0.0.1:8529' version: 3.4.9 [SINGLE, server], database: '_system', username: 'root'

Type 'tutorial' for a tutorial or 'help' to see common examples
127.0.0.1:theitroad@localhost_system>

创建一个测试数据库。

127.0.0.1:theitroad@localhost_system> db._createDatabase("testdb");
 true

创建数据库用户并授予对上面创建的数据库的访问权限。

var users = require("@arangodb/users");
users.save("theitroad@localhost", "dbuserpassword");
users.grantDatabase("theitroad@localhost", "testdb");

查看完整的用户管理教程以获取更多信息。

列出数据库。

127.0.0.1:theitroad@localhost_system> db._databases()
 [ 
   "_system",  
   "testdb" 
 ]

现在,我们可以使用theitroad @ localhost用户连接到测试数据库。

# arangosh --server.username "theitroad@localhost" --server.database testdb

Please specify a password: 
                                       _     
  __ _ _ __ __ _ _ __   __ _  ___  ___| |__  
/_` | '__/_` | '_ \/_` |/_ \/__| '_ \ 
| (_| | | | (_| | | | | (_| | (_) __ \ | | |
 __,_|_|  __,_|_| |_|__, |___/|___/_| |_|
                       |___/
arangosh (ArangoDB 3.4.2-1 [linux] 64bit, using jemalloc, build tags/v3.4.2.1-0-g91afc6501f, VPack 0.1.33, RocksDB 5.16.0, ICU 58.1, V8 5.7.492.77, OpenSSL 1.1.0j  20 Nov 2016)
 Copyright (c) ArangoDB GmbH
 Connected to ArangoDB 'http+tcp://127.0.0.1:8529' version: 3.4.2-1 [server], database: 'testdb', username: 'theitroad@localhost'
 Type 'tutorial' for a tutorial or 'help' to see common examples
 127.0.0.1:theitroad@localhost>

要删除数据库,请使用:

127.0.0.1:theitroad@localhost_system> db._dropDatabase("testdb");
 true

访问ArangoDB Admin Web界面

ArangoDB服务器带有用于管理的内置Web界面。它使我们可以管理数据库,集合,文档,用户,图形,运行和解释查询,查看服务器统计信息等等。

该服务设置为侦听本地主机地址,但可以更改为侦听本地LAN IP。

注释行endpoint = tcp://127.0.0.1:8529并添加网络IP。

$sudo vim /etc/arangodb3/arangod.conf
...
#endpoint = tcp://127.0.0.1:8529
endpoint = tcp://192.168.10.11:8529

进行此更改后,重新启动ArangoDB服务。

sudo systemctl restart arangodb3

如果启用了UFW防火墙,请确保防火墙中允许端口" 8529"。

sudo ufw allow proto tcp from any to any port 8529

访问" http://[serverip或者localhost]:8529"上的管理控制台。默认情况下,启用身份验证。

提供用户名和密码进行身份验证,然后在下一个屏幕上选择要连接的数据库。