啓動mongodb的時候報以下錯,意思是獲取不到地址對應的主機名,這一般與HOSTS有關
Failed to obtain address information for hostname mynode1: Name or service not known
2016-05-19T15:18:53.339+0800 I CONTROL [initandlisten] MongoDB starting : pid=16871 port=27017 dbpath=/data/db 64-bit host=mdb
2016-05-19T15:18:53.340+0800 I CONTROL [initandlisten] db version v3.2.3
2016-05-19T15:18:53.340+0800 I CONTROL [initandlisten] git version: b326ba837cf6f49d65c2f85e1b70f6f31ece7937
2016-05-19T15:18:53.340+0800 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
2016-05-19T15:18:53.340+0800 I CONTROL [initandlisten] allocator: tcmalloc
2016-05-19T15:18:53.340+0800 I CONTROL [initandlisten] modules: none
2016-05-19T15:18:53.856+0800 I CONTROL [initandlisten] 2016-05-19T15:18:53.856+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-05-19T15:18:53.856+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-05-19T15:18:53.856+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-05-19T15:18:53.856+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-05-19T15:18:53.856+0800 I CONTROL [initandlisten]
2016-05-19T15:18:53.859+0800 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2016-05-19T15:18:53.860+0800 I NETWORK [initandlisten] waiting for connections on port 27017
2016-05-19T15:18:53.860+0800 I NETWORK [HostnameCanonicalizationWorker] Starting hostname canonicalization worker
2016-05-19T15:18:53.918+0800 W NETWORK [HostnameCanonicalizationWorker] Failed to obtain address information for hostname mynode1: Name or service not known
首先檢查hosts文件,看是否有服務器IP地址對應的主機名
[root@w ~]# more /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
發現沒有地址對應的主機名,手動添加以下條目
192.168.10.10 mdb
再次重新啓動mongodb,錯誤消失,看來mongodb啓動需要解析hosts,這點與oracle RAC 有點類似,Mark一下
# nohup ./mongod > mongo.out &
# tail -50 mongo.out
2016-05-19T16:56:24.685+0800 I CONTROL [initandlisten] MongoDB starting : pid=22471 port=27017 dbpath=/data/db 64-bit host=mdb
2016-05-19T16:56:24.686+0800 I CONTROL [initandlisten] db version v3.2.3
2016-05-19T16:56:24.686+0800 I CONTROL [initandlisten] git version: b326ba837cf6f49d65c2f85e1b70f6f31ece7937
2016-05-19T16:56:24.686+0800 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
2016-05-19T16:56:24.686+0800 I CONTROL [initandlisten] allocator: tcmalloc
2016-05-19T16:56:24.686+0800 I CONTROL [initandlisten] modules: none
2016-05-19T16:56:25.176+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-05-19T16:56:25.176+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-05-19T16:56:25.176+0800 I CONTROL [initandlisten]
2016-05-19T16:56:25.176+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-05-19T16:56:25.176+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-05-19T16:56:25.176+0800 I CONTROL [initandlisten]
2016-05-19T16:56:25.179+0800 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2016-05-19T16:56:25.180+0800 I NETWORK [initandlisten] waiting for connections on port 27017
2016-05-19T16:56:25.180+0800 I NETWORK [HostnameCanonicalizationWorker] Starting hostname canonicalization worker