如何在Ubuntu 14.04上安装和配置OrientDB

介绍

OrientDB是一个多模型NoSQL数据库,支持图形和文档数据库。它是一个Java应用程序,可以在任何操作系统上运行。它也完全支持ACID,支持多主复制。

在本文中,您将学习如何在Ubuntu 14.04服务器上安装和配置OrientDB的最新社区版。

准备

要学习本教程,您需要具备以下条件:

  • Ubuntu 14.04 腾讯云CVM
  • 具有sudo权限的非root用户(你需要一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。)

第1步 - 安装Oracle Java

OrientDB是一个Java应用程序,需要Java 1.6或更高版本。因为它比Java 6和7快得多,所以强烈建议使用Java 8。这就是我们将在此步骤中安装的Java版本。

要安装Java JRE,请添加以下个人包存档(PPA):

sudo add-apt-repository ppa:webupd8team/java

更新包数据库:

sudo apt-get update

然后安装Oracle Java。使用此特定软件包安装它不仅会安装它,还会使其成为默认的Java JRE。出现提示时,接受许可协议:

sudo apt-get install oracle-java8-set-default

安装后,验证它现在是默认的Java JRE:

java -version

预期输出如下(确切版本可能有所不同):

java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

第2步 - 下载和安装OrientDB

在此步骤中,我们将下载并安装最新的OrientDB社区版。在本出版物发布时,OrientDB Community 2.1.3是最新版本。如果已发布较新版本,请更改版本号以匹配:

wget https://orientdb.com/download.php?file=orientdb-community-2.1.3.tar.gz

下载的tarball包含您在系统上运行OrientDB所需的预编译二进制文件,因此您需要做的就是将其解压缩到合适的目录。由于这/opt是Linux上第三方程序的传统位置,让我们在那里解读:

sudo tar -xf download.php?file=orientdb-community-2.1.3.tar.gz -C /opt

这些文件被提取到一个名为orientdb-community-2.1.3的目录中。为了更容易使用,让我们重命名它:

sudo mv /opt/orientdb-community-2.1.3 /opt/orientdb

第3步 - 启动服务器

现在二进制文件就位,您可以启动服务器并连接到控制台。在此之前,导航到安装目录:

cd /opt/orientdb

然后启动服务器:

sudo bin/server.sh

除了生成一堆输出之外,首次启动服务器时,系统会提示您为root用户帐户指定密码。这是一个用于访问服务器的内部OrientDB帐户。例如,它是用于访问OrientDB Studio的用户名和密码组合,OrientDB Studio是用于管理OrientDB的基于Web的界面。如果您未指定密码,将自动生成一个密码。但是,最好自己指定一个,在出现提示时这样做。

启动服务器生成的部分输出告诉您服务器和OrientDB Studio正在侦听的端口:

2015-10-12 11:27:45:095 INFO  Databases directory: /opt/orientdb/databases [OServer]
2015-10-12 11:27:45:263 INFO  Listening binary connections on 0.0.0.0:2424 (protocol v.32, socket=default) [OServerNetworkListener]
2015-10-12 11:27:45:285 INFO  Listening http connections on 0.0.0.0:2480 (protocol v.10, socket=default) [OServerNetworkListener]
​
...
​
2015-10-12 11:27:45:954 INFO  OrientDB Server v2.1.3 (build UNKNOWN@r; 2015-10-04 10:56:30+0000) is active. [OServer]

由于OrientDB现在在终端窗口中运行,在同一Droplet的第二个终端窗口中,确认服务器正在侦听端口2424(用于二进制连接)和2480(用于HTTP连接)。要确认它正在侦听二进制连接,请执行:

sudo netstat -plunt | grep 2424

输出应该类似于

tcp6       0      0 :::2424                 :::*                    LISTEN      1617/java

要确认它正在侦听HTTP连接,请执行:

sudo netstat -plunt | grep 2480

预期产量如下:

tcp6       0      0 :::2480                 :::*                    LISTEN      1617/java

第4步 - 连接到控制台

现在服务器正在运行,您可以使用控制台(即命令行界面)连接到它:

sudo /opt/orientdb/bin/console.sh

您将看到以下内容:

OrientDB console v.2.1.3 (build UNKNOWN@r; 2015-10-04 10:56:30+0000) www.orientdb.com
Type 'help' to display all the supported commands.
Installing extensions for GREMLIN language v.2.6.0
​
orientdb>

现在,连接到服务器实例。所需的密码是您在先前启动服务器时指定的密码:

connect remote:127.0.0.1 root root-password

如果已连接,则输出应为:

Connecting to remote Server instance [remote:127.0.0.1] with user 'root'...OK
orientdb {server=remote:127.0.0.1/}>

键入exit退出:

exit

所以你刚刚安装了OrientDB,手动启动它并连接到它。这一切都很好。但是,它还意味着您可以在重新启动服务器时手动启动它。这不好。在接下来的步骤中,我们将配置和设置OrientDB,以便像服务器上的任何其他守护程序一样运行。

在终端窗口键入CTRL-C,OrientDB仍然运行以停止它。

第5步 - 配置OrientDB

此时OrientDB安装在您的系统上,但它只是服务器上的一堆脚本。在此步骤中,我们将修改配置文件,并将其配置为在系统上作为守护程序运行。这涉及修改/opt/orientdb/bin/orientdb.sh脚本和/opt/orientdb/config/orientdb-server-config.xml配置文件。

让我们首先修改/opt/orientdb/bin/orientdb.sh脚本,告诉OrientDB应该运行它的用户,并将其指向安装目录。

因此,首先,创建您希望OrientDB运行的系统用户。该命令还将创建orientdb组:

sudo useradd -r orientdb -s /bin/false

将OrientDB目录和文件的所有权授予新创建的OrientDB用户和组:

sudo chown -R orientdb:orientdb /opt/orientdb

现在让我们对orientdb.sh脚本进行一些更改。我们首先使用以下方式打开它:

sudo nano /opt/orientdb/bin/orientdb.sh

首先,我们需要将它指向正确的安装目录,然后告诉它应该运行哪个用户。因此,请在文件顶部查找以下两行:

# You have to SET the OrientDB installation directory here
ORIENTDB_DIR="YOUR_ORIENTDB_INSTALLATION_PATH"
ORIENTDB_USER="USER_YOU_WANT_ORIENTDB_RUN_WITH"

并将它们更改为:

# You have to SET the OrientDB installation directory here
ORIENTDB_DIR="/opt/orientdb"
ORIENTDB_USER="orientdb"

现在,让我们使系统用户可以使用运行脚本sudo

再往下,在脚本的启动功能下,查找以下行并通过添加#前面的字符将其注释掉。它必须如下所示:

#su -c "cd \"$ORIENTDB_DIR/bin\"; /usr/bin/nohup ./server.sh 1>../log/orientdb.log 2>../log/orientdb.err &" - $ORIENTDB_USER

在刚刚注释掉的那一行之后立即复制并粘贴以下行:

sudo -u $ORIENTDB_USER sh -c "cd \"$ORIENTDB_DIR/bin\"; /usr/bin/nohup ./server.sh 1>../log/orientdb.log 2>../log/orientdb.err &"

停止功能下,查找以下行并将其注释掉。它必须如图所示。

#su -c "cd \"$ORIENTDB_DIR/bin\"; /usr/bin/nohup ./shutdown.sh 1>>../log/orientdb.log 2>>../log/orientdb.err &" - $ORIENTDB_USER

在刚刚注释掉的那一行之后立即复制并粘贴以下行:

sudo -u $ORIENTDB_USER sh -c "cd \"$ORIENTDB_DIR/bin\"; /usr/bin/nohup ./shutdown.sh 1>>../log/orientdb.log 2>>../log/orientdb.err &"

保存并关闭文件。

接下来,打开配置文件:

sudo nano /opt/orientdb/config/orientdb-server-config.xml

我们将修改storages标记,并可选择将另一个用户添加到users标记。因此,滚动到storages元素并对其进行修改,使其读取如下所示。该用户名密码是你登录凭证,也就是那些你用来登录到你的服务器:

/opt/orientdb/config/orientdb-server-config.xml<storages>
        <storage path="memory:temp" name="temp" userName="username" userPassword="password" loaded-at-startup="true" />
</storages>

如果滚动到users标签,您应该会看到在步骤3中首次启动OrientDB服务器时指定的root用户的用户名和密码。还列出了来宾帐户。您不必添加任何其他用户,但如果您愿意,可以添加用于登录DigitalOcean服务器的用户名和密码。以下是如何在users标记中添加用户的示例:

/opt/orientdb/config/orientdb-server-config.xml<user name="username" password="password" resources="*"/>

保存并关闭文件。

最后,修改文件的权限以防止未经授权的用户阅读它:

sudo chmod 640 /opt/orientdb/config/orientdb-server-config.xml

第6步 - 安装启动脚本

现在已经配置了脚本,您现在可以将它们复制到各自的系统目录中。对于负责运行控制台的脚本,将其复制到以下/usr/bin目录:

sudo cp /opt/orientdb/bin/console.sh /usr/bin/orientdb

然后将负责启动和停止服务或守护程序的脚本复制到/etc/init.d目录:

sudo cp /opt/orientdb/bin/orientdb.sh /etc/init.d/orientdb

切换到/etc/init.d目录:

cd /etc/init.d

然后更新rc.d目录,以便系统知道新脚本,并在启动时启动它,就像其他系统守护程序一样。

sudo update-rc.d orientdb defaults

你应该得到以下输出:

update-rc.d: warning: /etc/init.d/orientdb missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
 Adding system startup for /etc/init.d/orientdb ...
   /etc/rc0.d/K20orientdb -> ../init.d/orientdb
   /etc/rc1.d/K20orientdb -> ../init.d/orientdb
   /etc/rc6.d/K20orientdb -> ../init.d/orientdb
   /etc/rc2.d/S20orientdb -> ../init.d/orientdb
   /etc/rc3.d/S20orientdb -> ../init.d/orientdb
   /etc/rc4.d/S20orientdb -> ../init.d/orientdb
   /etc/rc5.d/S20orientdb -> ../init.d/orientdb

第7步 - 启动OrientDB

有了一切,您现在可以启动服务:

sudo service orientdb start

确认它确实启动了:

sudo service orientdb status

您还可以使用netstat步骤3中的命令来验证服务器是否正在侦听端口。如果服务器未启动,请检查/opt/orientdb/log目录中错误日志文件中的线索。

第8步 - 连接到OrientDB Studio

OrientDB Studio是用于管理OrientDB的Web界面。默认情况下,它正在侦听端口2480.要连接到它,请打开浏览器并在地址栏中键入以下内容:

http://server-ip-address:2480

如果页面加载,您应该看到登录屏幕。您应该能够登录root以及之前设置的密码。

如果页面没有加载,可能是因为它被防火墙阻止了。因此,您必须向防火墙添加规则以允许端口2480上的OrientDB流量。为此,请打开IPv4流量的IPTables防火墙规则文件:

sudo /etc/iptables/rules.v4

INPUT链中,添加以下规则:

-A INPUT -p tcp --dport 2480 -j ACCEPT

重启iptables:

sudo service iptables-persistent reload

这应该用于连接到OrientDB Studio。

结论

恭喜!您刚刚在服务器上安装了OrientDB社区版。

可以在orientdb.com上找到更多信息和官方OrientDB文档链接。

更多Ubuntu教程请前往腾讯云+社区学习更多知识。

参考文献:《How To Install and Configure OrientDB on Ubuntu 14.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏wblearn

redis集群报错Node is not empty

继上一篇redis3.0.x集群搭建完成之后,当然要用客户端JedisCluster简单测试一下集群啦,这样就要将redis.conf里bind 127.0.0...

9810
来自专栏SpringBoot 核心技术

SpringCloud组件:搭建Eureka服务注册中心

Eureka服务注册中心是netflix开源组织提供的一个服务高可用的解决方案,在前端时间一直在疯传的2.0开源流产的问题,其实并不影响我们的使用,netfli...

21520
来自专栏Java帮帮-微信公众号-技术文章全总结

springboot入门(4)_web开发

springboot入门(4)_web开发 摘要: 前几篇大概介绍了demo的搭建运行,Thymeleaf模板引擎的整合还有运行原理(主要是自动默认配置star...

45490
来自专栏刘望舒

Gradle入门前奏

在文章为什么现在要用Gradle?中,我们学习了常见的构建工具,以及Gradle与这些构建工具相比有那些不同的特性。这一篇文章我们接着来学习Gradle入门需要...

13620
来自专栏IT笔记

SpringBoot开发案例之配置静态资源文件路径

SpringBoot本质上是为微服务而生的,以JAR的形式启动运行,但是有时候静态资源的访问是必不可少的,比如:image、js、css 等资源的访问。

459100
来自专栏java闲聊

AvtiveMQ与SpringBoot结合

23270
来自专栏水击三千

SpringMvc学习-环境搭建

最近在学习SpringMVC,首先来说说SpringMVC项目的搭建。 1.SpringMVC简介 spring Web MVC是一种基于Java的实现了Web...

29770
来自专栏C++

Windows编译Opencv

22240
来自专栏SpringBoot 核心技术

SpringCloud组件:将微服务提供者注册到Eureka服务中心

Eureka提供了Server当然也提供了Client,如果你对Eureka Server不了解,点击SpringCloud组件:搭建Eureka服务注册中心阅...

43840
来自专栏IT笔记

SpringBoot开发案例之配置静态资源文件路径

前言 SpringBoot本质上是为微服务而生的,以JAR的形式启动运行,但是有时候静态资源的访问是必不可少的,比如:image、js、css 等资源的访问。 ...

2.1K100

扫码关注云+社区

领取腾讯云代金券