EOS

EOS配置MongoDB

EOS笔记

Posted by Liu Ke on February 14, 2019

v1.4.0

启动MongoDB

在启动MongoDB之前,当然还是先配置好eos节点的开发环境,具体请看EOS开发环境搭建

使用官方脚本编译安装了节点程序之后,eos会自动将所需的依赖全部安装好,包括MongoDB。MongoDB默认安装在~/opt/mongodb目录下。

打开~/opt/mongodb目录下的mongod.conf文件,修改好配置信息:

systemLog:
 destination: file
 path: /home/ke/opt/mongodb/log/mongodb.log
 logAppend: true
 logRotate: reopen
net:
 bindIp: 0.0.0.0,::27017
 ipv6: true
storage:
 dbPath: /home/ke/opt/mongodb/data

这里主要是bindIPdbPath。MongoDB默认端口一般为27017。如果数据库比较大,home挂载的分区空间不足,可以通过修改dbPath保存在别的路径中。

配置好MongoDB之后,通过如下命令启动MongoDB,如果需要后台运行,可以配合nohup&一起使用:

sudo ~/opt/mongodb/bin/mongod -f ~/opt/mongodb/mongod.conf

配置nodeos

修改~/.local/share/eosio/nodeos/config目录下的config.ini配置文件,增加如下两条配置内容,启动mongodb插件和配置mongodb_uri:

# MongoDB URI connection string, see: https://docs.mongodb.com/master/reference/connection-string/. If not specified then plugin is disabled. Default database 'EOS' is used if not specified in URI. Example: mongodb://127.0.0.1:27017/SEAT (eosio::mongo_db_plugin)
mongodb-uri = mongodb://localhost:27017/eosmainnet

plugin = cubetrain::mongo_db_plugin

这里的eosmainnet为要写入MongoDB数据库的名字,eos会自动创建该数据库。同时可以根据需要,修改config.ini配置文件中与MongoDB数据库有关的配置。

启动nodeos

如果区块链是一条新链,则通过指定genesis.json文件文件来启动。

如果之前存在区块信息,则通过如下命令启动:

nodeos -–replay-blockchain

如果链非法停止造成了数据错误,则使用:

nodeos --hard-replay-blockchain

如果之前的命令都不行,那谨慎使用--delete-all-blocks参数来删除所有区块,重新同步区块信息。

以上命令可以配合--mongodb-wipe这个插件来清空MongoDB数据库中的旧数据。

成功启动后,eos终端log中会显示加载mongo_db_plugin保存数据。此时可以通过MongoDB相关的命令,查看MongoDB数据库中的表和数据。

MongoDB可视化工具

可视化工具Robo 3T,可以非常方便的查询和管理MongoDB数据库。

打开上文链接,点击Download Robo 3T按钮,下载程序完成后解压到~/top目录下,打开robo3t-1.2.1-linux-x86_64-3e50a65/bin/robo3t启动程序。

点击Create创建一个连接,在弹出的配置选项卡上填写配置信息,Name填写MongoDb@localhost,Address填写localhost,点击save保存。在管理窗口点击连接,进入后数据库管理界面。就可以很方便的查看和管理我们之前创建的eosmainnet数据库了。


Fork me on GitHub