CentOS6 mininal 安裝CouchDB2 詳細(xì)版

CentOS6 mininal 安裝CouchDB2 詳細(xì)版

couchdb官網(wǎng):http://couchdb.apache.org/

安裝依賴(lài)

-Erlang OTP (>=R61B03, =<19.x)-ICU-OpenSSL-Mozilla SpiderMonkey (1.8.5)-GNU Make-GNU Compiler Collection-libcurl-help2man-Python (>=2.7)fordocs-Python Sphinx (>=1.1.3)

參考教程:http://docs.couchdb.org/en/2.0.0/install/unix.html

# 初始設(shè)置,避免不必要的權(quán)限問(wèn)題/etc/init.d/iptablesstopsetenforce0sed -i's/SELINUX=enforcing/SELINUX=disabled/g'/etc/selinux/config# 安裝依賴(lài)yum -yupdateyum -ygroupinstall"Development Tools""Development Libraries"rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpmyum install autoconf automake curl-devel help2man libicu-devel libtoolperl-Test-Harness wget libicu-devel curl-devel ncurses-devel libtool libxslt fop java-1.7.0-openjdk java-1.7.0-openjdk-devel unixODBC unixODBC-develvimopenssl-devel

源碼安裝erlang

yum install erlang-asn1 erlang-erts erlang-eunit erlang erlang-os_mon erlang-xmerlwget http://erlang.org/download/otp_src_19.3.tar.gz? #滿(mǎn)足依賴(lài)的最新版erlangtar -xvf otp_src_19.3.tar.gzcd otp_src_19.3./configure && makemake install

源碼安裝 js-devel

js-devel-1.8.5 # 無(wú)yum安裝包

wget http://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gzcdjs-1.8.5/js/src./configure && makesudo make install

安裝autoconf-archive

配置puias-computational.repo 安裝autoconf-arch

vim /etc/yum.repos.d/puias-computational.repo[PUIAS_6_computational]name=PUIAS computational Base$releasever-$basearchmirrorlist=http://puias.math.ias.edu/data/puias/computational/$releasever/$basearch/mirrorlistgpgcheck=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puiasInstall autoconf-archive rpm package:yum install autoconf-archive -y

源碼安裝CouchDB

wget http://mirror.bit.edu.cn/apache/couchdb/source/2.0.0/apache-couchdb-2.0.0.tar.gztar zxvf apache-couchdb-2.0.0.tar.gzcdapache-couchdb-2.0.0./configuremakerelease? # 這里有報(bào)錯(cuò),根據(jù)解決方法修改完成之后重新makerelease,在文章末尾

添加用戶(hù)啟動(dòng)couchdb

# groupadd CouchDB Administrator# adduser --system --no-create-home --shell /bin/bash --group --gecos "CouchDB Administrator" couchdb? # 默認(rèn)CouchDB Administrator不存在,官網(wǎng)命令有點(diǎn)坑# - adduser: group '--gecos' does not existadduser --system--no-create-home --shell /bin/bash -c"CouchDB Administrator"couchdb# 使用此條命令mv /usr/local/src/apache-couchdb-2.0.0/rel/couchdb /usr/local/chown-R couchdb:couchdb /usr/local/couchdb# find /usr/local/couchdb -type d -exec chmod 0770 {} \;# chmod 0644 /usr/local/couchdb/etc/*

配置couchdb,特別重要

vim /usr/local/couchdb/etc/vm.args-name couchdb@n1couchdb.aniu.so> 注意:前提時(shí)設(shè)置系統(tǒng)需要設(shè)置hostname,修改完成系統(tǒng)hosts文件為0.0.0.0localhost localhost.localdomain n1couchdb.aniu.so#0.0.0.0localhost localhost.localdomain n1couchdb.aniu.so192.168.0.154n1couchdb.aniu.sohostname n1couchdb.aniu.sosed -i 's/localhost.localdomain/n1couchdb.aniu.so/g' /etc/sysconfig/network> 上面幾步操作是修改hostname,方便識(shí)別,為后面配置couchdb集群方便# -kernel inet_dist_listen_min9100# -kernel inet_dist_listen_max9200> 上面兩個(gè)參數(shù)暫時(shí)不用,配置集群的時(shí)候在使用# 修改couchdb啟動(dòng)時(shí)默認(rèn)監(jiān)聽(tīng)的ip,默認(rèn)127.0.0.1,不能通過(guò)瀏覽器進(jìn)行初始化設(shè)置,改為0.0.0.0sed -i 's/127.0.0.1/0.0.0.0/g' /usr/local/couchdb/etc/default.ini

配置完成之后使用couchdb用戶(hù)啟動(dòng)couchdb

su- couchdbcd/usr/local/couchdb./bin/couchdb

啟動(dòng)成功界面如下:

[info]2017-07-04T13:09:39.587046Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application couch_log startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:39.593768Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application folsom startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:39.649564Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application couch_stats startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:39.649666Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application khash startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:39.662118Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application couch_event startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:39.670377Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application ibrowse startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:39.678054Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application ioq startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:39.678117Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application mochiweb startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:39.678238Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application oauth startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:39.689266Z couchdb@n1couchdb.aniu.so<0.210.0> -------- Apache CouchDB2.0.0isstarting.[info]2017-07-04T13:09:39.689396Z couchdb@n1couchdb.aniu.so<0.211.0> -------- Starting couch_sup[info]2017-07-04T13:09:39.937994Z couchdb@n1couchdb.aniu.so<0.210.0> -------- Apache CouchDBhasstarted. Timetorelax.[info]2017-07-04T13:09:39.938230Z couchdb@n1couchdb.aniu.so<0.210.0> -------- Apache CouchDBhasstartedonhttp://0.0.0.0:5986/[info]2017-07-04T13:09:39.938366Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application couch startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:39.938520Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application ets_lru startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:39.953625Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application rexi startedonnode'couchdb@n1couchdb.aniu.so'[error]2017-07-04T13:09:40.065167Z couchdb@n1couchdb.aniu.so<0.293.0> -------- ** System runningtouse fully qualified hostnames **** Hostname localhostisillegal **[info]2017-07-04T13:09:40.099794Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application mem3 startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:40.099886Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application fabric startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:40.126321Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application chttpd startedonnode'couchdb@n1couchdb.aniu.so'[notice]2017-07-04T13:09:40.145151Z couchdb@n1couchdb.aniu.so<0.328.0> -------- chttpd_auth_cachechangeslistener died database_does_not_exist at mem3_shards:load_shards_from_db/6(line:327) <= mem3_shards:load_shards_from_disk/1(line:315) <= mem3_shards:load_shards_from_disk/2(line:331) <= mem3_shards:for_docid/3(line:87) <= fabric_doc_open:go/3(line:38) <= chttpd_auth_cache:ensure_auth_ddoc_exists/2(line:187) <= chttpd_auth_cache:listen_for_changes/1(line:134)[error]2017-07-04T13:09:40.145263Z couchdb@n1couchdb.aniu.soemulator -------- Error in process <0.329.0>onnode'couchdb@n1couchdb.aniu.so'withexitvalue:{database_does_not_exist,[{mem3_shards,load_shards_from_db,"_users",[{file,"src/mem3_shards.erl"},{line,327}]},{mem3_shards,load_shards_from_disk,1,[{file,"src/mem3_shards.erl"},{line,315}]},{mem3_shards,load_shards_from_disk,2,[{file,"src/mem3_shards.erl"},{line,331}]},{mem3_shards,for_docid,3,[{file,"src/mem3_shards.erl"},{line,87}]},{fabric_doc_open,go,3,[{file,"src/fabric_doc_open.erl"},{line,38}]},{chttpd_auth_cache,ensure_auth_ddoc_exists,2,[{file,"src/chttpd_auth_cache.erl"},{line,187}]},{chttpd_auth_cache,listen_for_changes,1,[{file,"src/chttpd_auth_cache.erl"},{line,134}]}]}[info]2017-07-04T13:09:40.151849Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application couch_index startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:40.151985Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application couch_mrview startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:40.152078Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application couch_plugins startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:40.193218Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application couch_replicator startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:40.193271Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application couch_peruser startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:40.205124Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application ddoc_cache startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:40.225182Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application global_changes startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:40.225319Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application jiffy startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:40.233555Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application mango startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:40.241861Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application setup startedonnode'couchdb@n1couchdb.aniu.so'[info]2017-07-04T13:09:40.241950Z couchdb@n1couchdb.aniu.so<0.9.0> -------- Application snappy startedonnode'couchdb@n1couchdb.aniu.so'[notice]2017-07-04T13:09:45.145647Z couchdb@n1couchdb.aniu.so<0.328.0> -------- chttpd_auth_cachechangeslistener died database_does_not_exist at mem3_shards:load_shards_from_db/6(line:327) <= mem3_shards:load_shards_from_disk/1(line:315) <= mem3_shards:load_shards_from_disk/2(line:331) <= mem3_shards:for_docid/3(line:87) <= fabric_doc_open:go/3(line:38) <= chttpd_auth_cache:ensure_auth_ddoc_exists/2(line:187) <= chttpd_auth_cache:listen_for_changes/1(line:134)[error]2017-07-04T13:09:45.145807Z couchdb@n1couchdb.aniu.soemulator -------- Error in process <0.455.0>onnode'couchdb@n1couchdb.aniu.so'withexitvalue:{database_does_not_exist,[{mem3_shards,load_shards_from_db,"_users",[{file,"src/mem3_shards.erl"},{line,327}]},{mem3_shards,load_shards_from_disk,1,[{file,"src/mem3_shards.erl"},{line,315}]},{mem3_shards,load_shards_from_disk,2,[{file,"src/mem3_shards.erl"},{line,331}]},{mem3_shards,for_docid,3,[{file,"src/mem3_shards.erl"},{line,87}]},{fabric_doc_open,go,3,[{file,"src/fabric_doc_open.erl"},{line,38}]},{chttpd_auth_cache,ensure_auth_ddoc_exists,2,[{file,"src/chttpd_auth_cache.erl"},{line,187}]},{chttpd_auth_cache,listen_for_changes,1,[{file,"src/chttpd_auth_cache.erl"},{line,134}]}]}

查看couchdb進(jìn)程

[root@n1couchdb ~]# ps -ef | grep couchdbcouchdb35821020:59 ?? ? ? ? 00:00:00 /usr/local/couchdb/bin/../erts-8.3/bin/epmd -daemonroot38043789021:06 pts/2? ? 00:00:00 su - couchdbcouchdb38053804021:06 pts/2? ? 00:00:00 -bashcouchdb39013805321:09 pts/2? ? 00:00:04 /usr/local/couchdb/bin/../erts-8.3/bin/beam.smp -K true -A16-Bd -- -root /usr/local/couchdb/bin/.. -progname couchdb -- -home /home/couchdb -- -boot /usr/local/couchdb/bin/../releases/2.0.0/couchdb -name couchdb@n1couchdb.aniu.so -setcookie monster -kernel error_logger silent -sasl sasl_error_logger false -noshell -noinput -kernel inet_dist_listen_min9100-kernel inet_dist_listen_max9200-config /usr/local/couchdb/bin/../releases/2.0.0/sys.configcouchdb39283901021:09 ?? ? ? ? 00:00:00 erl_child_setup 1024couchdb39343928021:09 ?? ? ? ? 00:00:00 sh -s disksupcouchdb39363928021:09 ?? ? ? ? 00:00:00 /usr/local/couchdb/bin/../lib/os_mon-2.4.2/priv/bin/memsupcouchdb39373928021:09 ?? ? ? ? 00:00:00 /usr/local/couchdb/bin/../lib/os_mon-2.4.2/priv/bin/cpu_supcouchdb39383928021:09 ?? ? ? ? 00:00:00 inet_gethost 4couchdb39393938021:09 ?? ? ? ? 00:00:00 inet_gethost 4root39613945021:12 pts/3? ? 00:00:00 grep couchdb[root@n1couchdb ~]# netstat -nlptActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address? ? ? ? ? ? ? Foreign Address? ? ? ? ? ? State? ? ? PID/Program nametcp000.0.0.0:5984? ? ? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? ? ? LISTEN? ? ? 4355/beam.smptcp000.0.0.0:5986? ? ? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? ? ? LISTEN? ? ? 4355/beam.smptcp000.0.0.0:4369? ? ? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? ? ? LISTEN? ? ? 3582/epmd

檢查couchdb是否正常工作

[root@n1couchdb ~]# curl -I http://0.0.0.0:5984/_utils/index.htmlHTTP/1.1 200 OKCache-Control: private, must-revalidateContent-Length: 1886Content-Security-Policy:default-src'self';img-src'self'data:;font-src'self';script-src'self''unsafe-eval';style-src'self''unsafe-inline';Content-Type: text/htmlDate: Tue, 04 Jul 2017 13:26:40 GMTlast-modified: Tue, 04 Jul 2017 12:43:17 GMTServer: CouchDB/2.0.0 (Erlang OTP/19)

單點(diǎn)情況下通過(guò)瀏覽器訪(fǎng)問(wèn)

http://192.168.0.154:5984/_utils/#verifyinstall,進(jìn)行初始化設(shè)置,如下圖:

這里初始設(shè)置 username: admin password: password ,方便記憶,后面需要再改

登錄成功,配置單節(jié)點(diǎn)

CouchDB管理頁(yè)面還有許多操作,這里就不過(guò)多演示

安裝過(guò)程中報(bào)錯(cuò)修復(fù)

ERROR: compile failed while processing /usr/local/src/apache-couchdb-2.0.0/src/couch: rebar_abort

解決報(bào)錯(cuò):

cd/usr/local/src/apache-couchdb-2.0.0egrep -r js-1.8.5*vim +106src/couch/rebar.config.script{"linux",? CouchJSPath, CouchJSSrc, [{env, [{"CFLAGS", JS_CFLAGS ++" -DXP_UNIX -I/usr/include/js"}, {"LDFLAGS", JS_LDFLAGS ++" -lm"}]}]},改為:{"linux",? CouchJSPath, CouchJSSrc, [{env, [{"CFLAGS", JS_CFLAGS ++" -DXP_UNIX -I/usr/local/include/js"}, {"LDFLAGS", JS_LDFLAGS ++" -lm"}]}]},# 根本原因就是couchdb編譯的時(shí)候找到默認(rèn)的js# 還有種方式就是做軟鏈接ln -s/usr/local/include/js/usr/include/j# 這種方法尚未嘗試,修改完成就可以繼續(xù)編譯啦

安裝依賴(lài)缺失報(bào)錯(cuò)

[root@localhost apache-couchdb-2.0.0]# make releaseUncaughterrorinrebar_core: {'EXIT',? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {undef,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [{crypto,start,[],[]},? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {rebar,run_aux,2,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [{file,"src/rebar.erl"},{line,212}]},? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {rebar,main,1,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [{file,"src/rebar.erl"},{line,58}]},? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {escript,run,2,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [{file,"escript.erl"},{line,760}]},? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {escript,start,1,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [{file,"escript.erl"},{line,277}]},? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {init,start_em,1,[]},? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {init,do_boot,3,[]}]}}make: *** [couch]Error1

次報(bào)錯(cuò)是編譯erlang前沒(méi)安裝openssl-devel,安裝openssl-devel重新編譯erlang

安裝完成

WARN:'generate'commanddoesnotapplytodirectory/usr/local/src/apache-couchdb-2.0.0... done? ? You can now copytherel/couchdbdirectoryanywhereonyoursystem.? ? Start CouchDBwith./bin/couchdbfromwithinthatdirectory.

下面是程序本身BUG

[notice]2017-07-04T13:18:55.255565Z couchdb@n1couchdb.aniu.so<0.328.0> -------- chttpd_auth_cachechangeslistener died database_does_not_exist at mem3_shards:load_shards_from_db/6(line:327) <= mem3_shards:load_shards_from_disk/1(line:315) <= mem3_shards:load_shards_from_disk/2(line:331) <= mem3_shards:for_docid/3(line:87) <= fabric_doc_open:go/3(line:38) <= chttpd_auth_cache:ensure_auth_ddoc_exists/2(line:187) <= chttpd_auth_cache:listen_for_changes/1(line:134)[error]2017-07-04T13:18:55.255823Z couchdb@n1couchdb.aniu.soemulator -------- Error in process <0.9372.0>onnode'couchdb@n1couchdb.aniu.so'withexitvalue:{database_does_not_exist,[{mem3_shards,load_shards_from_db,"_users",[{file,"src/mem3_shards.erl"},{line,327}]},{mem3_shards,load_shards_from_disk,1,[{file,"src/mem3_shards.erl"},{line,315}]},{mem3_shards,load_shards_from_disk,2,[{file,"src/mem3_shards.erl"},{line,331}]},{mem3_shards,for_docid,3,[{file,"src/mem3_shards.erl"},{line,87}]},{fabric_doc_open,go,3,[{file,"src/fabric_doc_open.erl"},{line,38}]},{chttpd_auth_cache,ensure_auth_ddoc_exists,2,[{file,"src/chttpd_auth_cache.erl"},{line,187}]},{chttpd_auth_cache,listen_for_changes,1,[{file,"src/chttpd_auth_cache.erl"},{line,134}]}]}

作為單個(gè)節(jié)點(diǎn)運(yùn)行2.0時(shí),它不會(huì)在啟動(dòng)時(shí)創(chuàng)建系統(tǒng)數(shù)據(jù)庫(kù),必須手動(dòng)執(zhí)行此操作:

curl -XPUThttp://0.0.0.0:5984/_userscurl -XPUThttp://0.0.0.0:5984/_replicatorcurl -XPUThttp://0.0.0.0:5984/_global_changes

參考教程

http://guide.couchdb.org/draft/security.html

http://docs.couchdb.org/en/latest/install/setup.html

https://medium.com/linagora-engineering/setting-up-a-couchdb-2-cluster-on-centos-7-8cbf32ae619f

http://docs.couchdb.org/en/2.0.0/install/unix.html

https://issues.apache.org/jira/browse/COUCHDB-2995# 最重要報(bào)錯(cuò)修復(fù)

http://docs.couchdb.org/en/2.0.0/cluster/setup.html#the-cluster-setup-wizard

原文鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容