[野人獻曝] 簡介 Orchestrate.io 5月 26, 2015 Orchestrate.io 是一個把 NoSQL 和搜尋服務結合在一起的 DaaS(Database as a Service)。 對於想要用搜尋服務也想同時使用 NoSQL 服務,但是資源卻不夠多的人,他的免費方案讓你可以輕鬆使用,所以我非常推薦。 使用方法很簡單,初使用者可以直接看範例 Code,瞭解最基本的用法後就可以開始寫 Code 了。 閱讀完整內容
[野人獻曝] 千萬不要在 MySQL 內有用到 auto_increment 的表下 INSERT ... ON DUPLICATE 5月 18, 2015 原因很可怕,所以不要問! 最近開了一個有 auto_increment 欄位的資料表, 並且將該表中幾個欄位設為唯一值索引, 然後就下了以下的SQL塞資料: INSERT INTO EXAMPLE (a, b, c) VALUES ('1', '2', '3') ON DUPLICATE KEY UPDATE d = '4' 結果發現 auto_increment 欄位中的值越變越大, 不過一千多筆的資料,流水號卻取到七萬多。 看了 MySQL 的說明 , 才發現下 INSERT ... ON DUPLICATE KEY 時碰到 auto_increment 欄位時, 流水號也會持續增加(只有 Update 時才不會增加), 所以下一次真的有新增資料時,流水號會跳得老遠去...... 當下只好照 StackOverflow 上的一篇回覆 修改程式碼解決這個不算大卻有點微妙的問題...... 閱讀完整內容
[野人獻曝] 救回使用 innodb 的 mySQL 1月 25, 2015 因為一連串的原因(不要問很可怕), 導致我的 mySQL 整個重啟不能, 好死不死的又因為我資料庫裡面的資料表恰好都是 innoDB, 因此問題更難搞。 經過該死的 Google 和實驗後, 總算找到一個勉強算是救回資料的方法! 方法如下: 無論如何先把 mySQL 先停掉 停掉之後在你的 mySQL 設定檔中加上一行 innodb_force_recovery = 4 * 重新啟動 mySQL,試試看是否可以連進 mySQL,確定可以連進去後,先把所有會寫入 DB 的程式都先關掉,然後開始備份資料。 資料備份完後,請把有用到 innodb 的資料庫砍掉。接著移除上面那行 innodb_force_recovery,並且刪除 /var/lib/mysql 下所有 ib 開頭的檔案,然後重新啟動 mySQL。 接著重建資料庫,並把備份資料匯入應該就可以讓 mySQL 正常運作了。 * 參閱: Forcing InnoDB Recovery 閱讀完整內容
[野人獻曝] 目前正在使用的雲端服務比較 1月 23, 2015 算作個筆記 兼騙發文數 的紀錄好了...... 比較項目 AWS EC2 Microsoft Azure DigitalOcean 價格 高,主機基本租金是最高的,而且還要另計流量和IO 中,其實價格勉強可以接受,而且可以開台灣發票 低,價格最低,開一台入門機一個月只要5鎂 特色 高擴充,其他周邊的支援服務超完善(發email、DNS Hosting,甚至搜尋服務都有) 看看那精美的管理介面......而且如果只是要放一個靜態網站的話也不用莫名其妙開一台主機,可以有效節省資源 價格低,而且機器都是用SSD的 問題 有錢的時候就都不是問題了,問題是沒錢啊 如果他的週邊支援服務能更多一些或許就更有價值了 系統管理菜鳥的話可能需要多花點心力調機器 閱讀完整內容
[野人獻曝] 使用 GitLab 來寫個簡單的 git log 介面 12月 13, 2014 因為公司的版本管理用 Git ,所以裝個 GitLab 也是很正常的事! 說是這麼說啦,不過我也不算啥 Git 達人,所以研究這個東西只是基於我工作上需求而做的。 使用這隻API的方式很簡單,只要: 先到個人的帳號頁面拿到專屬的 private_token 然後看 GitLab 提供的 API 有什麼可用的,然後自己實作功能就好了 以下是實作列出專案的大略程式碼: 閱讀完整內容
[野人獻曝] 讓 solr 將查出的資料作亂數排序 6月 08, 2014 第一步:打開你的索引核心目錄中的 schema.xml 分別找到 fields 和 types 兩個區塊,並在區塊內加上以下內容: <fields> ...... <dynamicField name=" random* " stored="false" indexed="true" type=" rand " /> </fields> <types> ...... <fieldType name=" rand " class="solr.RandomSortField" indexed="true" /> </types> 注意:紅字的地方名稱務必要一樣,不然索引應該會失敗。 第二步:重新啟動 solr ,完工! 如果你有設定 Replication 的話, 理論上應該會將這份 schema.xml 同步到 slave 機上。 接著你可以在 solr 的查詢介面中試著用 sort = random* [desc | asc] 試試看, 應該會看到不同查詢排序結果。 (注:*可以是任何字元,但是儘量不要用同一組字元,因為會得到同樣的結果,就沒有 random 的意義了) 以上,打完收工! 閱讀完整內容
[野人獻曝] 在Server上安裝linux儀表板 6月 01, 2014 有些時候想看系統上的一些資訊要自己下一票指令, 如果熟悉這些指令的話倒也就罷了, 但很多時候其實並不這麼熟悉, 所以就有人做了 一個儀表板 , 可以用網頁的形式顯示系統資訊, 一眼就可以看出來系統狀況。 他的安裝基本上很簡單: 確定系統上安裝了php5和php5-json(我想一般機器都會有 沒裝的話自行敲個 yum install / apt-get install 吧 下載檔案並解壓縮到網站目錄中 檔案網址: https://github.com/afaqurk/linux-dash/archive/master.zip 解壓縮這個檔案放到網站目錄 為了保險起見將這個目錄加上簡單的密碼保護 如果是用 nginx 的話,可以在 /etc/nginx/sites-enabled/default 下加上以下內容 location 目錄路徑 { auth_basic "提示要求輸入密碼的內容" auth_basic_user_file "密碼檔路徑" } 然後利用 這個工具 產生密碼檔的內容,並且貼到密碼檔中,接著重新啟動 nginx 即可。 以上動作完成,輸入網址並且打上帳號密碼應該就可以看到你現在的系統狀態了。 以下是實際執行的畫面: 閱讀完整內容