文章

目前顯示的是 十月, 2008的文章

解決 mongodb 無法啟動的問題

某天起床後 mongo 忽然活不回來了
查了一下錯誤訊息的 log:

Docs: https://docs.mongodb.org/manual
  Process: 120107 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=1/FAILURE)
  Process: 120104 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 120101 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
  Process: 120099 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)

 1月 15 04:01:26 foso-test systemd[1]: Starting MongoDB Database Server...
 1月 15 04:01:29 foso-test mongod[120107]: about to fork child process, waiting until server is ready for connections.
 1月 15 04:01:29 foso-test mongod[120107]: forked process: 120112
 1月 15 04:01:29 foso-test systemd[1]: mongod.service: control process exited, code=exited status=1
 1月 15 04:01:29 foso-test systemd[1]: Failed to start MongoDB Database Server.



看起來應該是權限的問題: 發現很多人都遇到相同的狀況,主要有兩個資料夾勢必要擁有 mongod 這個權限擁有才可以。 所以大部分的解決說明都是這樣作:
chown -R mongod:mongod …

不會重複的值 時間

小灰狼很習慣的會利用毫秒當作是資料庫的主鍵值。原因是,我相信他不會重複吧!

gettimeofday --- 取得目前的時間語法 : array gettimeofday (void)說明 : 這是個gettimeofday(2)的介面,它從呼叫系統傳回一包含了資料的組合陣列。"sec" - 秒"usec" - 百萬分之一秒"minuteswest" - 分,格林威治時間"dsttime" - dst的型態修正
我比較會用到的是下面這個:
將sec取回存入變數中,但是由於他會到小數點下兩位,所以我會習慣將數值乘上100
$timesn = gettimeofday(sec)*100;

分隔字元存入陣列 explode

相信很多人會用到需要用特定的符號做出分隔字元。最常用的通常都是逗點分隔啦!
其實用甚麼字元分割不是重點只要確定你的內容不會出現就好了!

php提供 explode() 可以將自串利用特定字元切割,並存入陣列中...

用法:

$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

上面這一段是將$pizza中的字串利用空白字元" "下去做分隔。存入$pieces陣列中。

$即將被存入的陣列變數 = explode("分隔符號",要被切割的字串);



詳細說明網頁:http://tw.php.net/explode