對于菜鳥的我來說,要想做出一個產品,還是挺困難的。如果是一個小團隊,你幾乎要涉及產品的方方面面,如下是我在使用過程中遇到的一些問題。在產品的開發期間,都是摸著石頭過河。就在前段時間mongodb由于沒有設置密碼訪問,被黑客攻擊了。因此騰訊云還發了郵件過來,好在是在產品開發階段,于是乎要修好這些漏洞,便有了這一篇記錄。 騰訊云給出的一些博文鏈接: 一場屠戮MongoDB的盛宴反思 | 超33000個數據庫遭遇入侵勒索——freebuf MongoDB數據庫勒索,中國受害者數量超乎想象
黑客留下的痕跡:
大概意思是:要交0.5個比特幣要他指定的地址,然后會將你的數據歸還給你。
關于比特幣的大概認識: 下面一段摘自知乎的回答:(https://www.zhihu.com/question/22020816/answer/20073288) 按照傳統理論,貨幣價格不但和數量有關,還和貨幣流通速度有關。 全球貨幣總量是60萬億美金,比特幣總量是2100萬,大約1?=300萬美金。 但是如果比特幣流通速度提高一倍的話,同樣的支付需求只需要1050萬個就能夠完成了,大致相當于比特幣數量增加了一倍。這時候1?=150萬美金。
在已經開啟mongo的前提下。在centos找到mongo,并且直接運行mongo則可以在centos中以命令行的方式操作mongo 例如: 如下是我的文件目錄,如要使用,請修改成自己的目錄:
./bin/mongo既然前面講到遭受攻擊,那么這里肯定是要以安全的方式啟動mongo,即是要輸入密碼才能連接。 首先,以配置文件啟動的話,參數都在配置文件里面了,這里貼出我的配置文件:
dbpath = /usr/local/***/mongodb/data/dblogpath = /usr/local/***/mongodb/logs/mongodb.logport = 27017fork = truelogappend = true#添加驗證auth = truerest = true如下是我的文件目錄,如要使用,請修改成自己的文件目錄:
(以配置文件啟動mongo)./bin/mongod --config /usr/local/***/mongodb/bin/mongodb.conf (直接命令行啟動mongo)./bin/mongod --dbpath /usr/local/***/mongodb/data/db --logpath /usr/local/***/mongodb/logs/mongdb.log --auth正確的關閉方法:
killall mongod錯誤的關閉方法:
kill -9 進程號如果使用了錯誤的關閉方法(包括異常關機,和kill -9),通常會出現如下錯誤:
ERROR: child PRocess failed, exited with error number 48
解決方案: 在 ./mongodb/bin/data 目錄下找到mongod.lock (一般會在你的data目錄下),刪除mongod.lock: rm mongod.lock 在關閉mongod的情況下,再正常啟動mongod,則不會出現上面的錯誤。
下面一段文字是摘自(http://www.cnblogs.com/joshua317/articles/5190385.html) warning:千萬不能使用kill -9 ,因為MongoDB使用mmap方式進行數據文件管理,也就是說寫操作基本是在內存中進行,寫操作會被每隔60秒(syncdelay設定)的flush到磁盤里。如果在這60秒內flush處于停止事情我們進行kill -9那么從上次flush之后的寫入數據將會全部丟失。 如果在flush操作進行時執行kill -9則會造成文件混亂,可能導致數據全丟了,啟動時加了repair也無法恢復。
我這邊的后臺是用nodejs的express框架寫的,用了moongose,express-session和connect-mongo模塊,那么連接方式應該給為如下方式:
mongodb://user:passWord@localhost/dbname例如:我的 username:user_zone password:123456 dbname:mydb 則如下:
mongodb://user_zone:123456@localhost/mydb新聞熱點
疑難解答