2014年11月12日 星期三

[Database] 在Ubuntu安裝sqlite和sqlitebrowser


安裝sqlite

sudo apt-get install sqlite3


試看看是否可以登入sqlite3 (資料庫不存在的話會自動建立)

sqlite3 [DatabaseName]

例:sqlite3 test.db

.help 顯示相關命令
.databases 顯示資料庫
.table 顯示表格
.exit or .quit 離開























安裝sqlite browser

英文文件請參考:https://github.com/sqlitebrowser/sqlitebrowser/blob/master/BUILDING.md


請先安裝libqt4-dev和libsqlite3-dev 和 qp-sdk

sudo apt-get install libqt4-dev

sudo apt-get install libsqlite3-dev

sudo apt-get install qp-sdk


下載:source 檔案 

https://github.com/sqlitebrowser/sqlitebrowser/zipball/master

更多檔案格式請見官網:http://sqlitebrowser.org/

============安裝=================


  1. 打開終端機進到你的解壓縮的目錄
  2. 建立build資料夾 mkdir build
  3. 進去資料夾 cd build
  4. 執行cmake ..
  5. make 
  6. sudo make install 

註.cmake前請先檢查寫入權限問題,請用chmod改變權限


make過程












sudo make install 








再來執行 /usr/local/share/applications/sqlitebrowser.desktop 就可以了
















圖形還是比較人性化,這樣建schema就大大方便了




















出現could not exec gnu/qt4/bin/qmake 的錯誤就是沒有安裝上面libqt4-dev和libsqlite3-dev 






2014年11月9日 星期日

[NO SQL] MongoDB 安裝


原文內容請直接參考:
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/


第一步:取得金鑰
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10









第二步:增加更新來源的網址

echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list








第三步:sudo apt-get update

第四步:安裝mongoDB


sudo apt-get install -y mongodb-org













MongoDB資料放在/var/lib/mongodb
log檔放在 /var/log/mongodb

啟動設定檔放在/etc/mongod.cnf,使用port:27017為預設連接port

啟動:sudo service mongod start
停止:sudo service mongod stop








2014年11月8日 星期六

apt-get 常用指令


apt-cache search package 搜索程式
apt-cache show package 取得程式的訊息
sudo apt-get install package 安装程式
sudo apt-get install package - - reinstall 重新安装程式
sudo apt-get -f install 修复安装      "-f = --fix-missing"
sudo apt-get remove package 移除程式
sudo apt-get remove package - - purge 删除程式,包括删除配置文件等
sudo apt-get update 更新程式
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-get dselect-upgrade 使用 dselect 升级
apt-cache depends package 了解程式依存關係
sudo apt-get build-dep package 安装編譯的程式
apt-get source package 下載程式的開源碼
sudo apt-get clean && sudo apt-get autoclean 清理無用的檔案
sudo apt-get check 檢查程式的依存關係是否有損壞

2014年11月2日 星期日

char欄位插入中文字與英文字的差別


建立一個char(5)的文字欄位

試著新增‘中字長度六個’的文字






顯示警告,仍然新增成功,將多餘的字元截斷












新增‘1234567890a’的11個英文字











出乎意料,英文字也是在第六個字就截斷了











所以char(5)在中文字和英文字的結果都是一樣的

2014年11月1日 星期六

查詢文字欄位的長度




select length('中'),佔3個byte













select bit_length('中'),佔了24個bit











select char_length('中'),得到1個中文字












結論:計算中文字長度要用char_length()函數


2014年10月31日 星期五

[Table Schema]文字欄位的考量,應該選擇char還是varchar?


varchar因為有動態選擇大小的好處,所以以前都以varchar為文字欄位的第一選擇,看了一些書上的設計都以char為主要文字考量,上網查了一下資料

最後了解選擇char主要的考量是效能,有興趣的可以參考

MySQL varchar 長度和效能問題


char欄位會將未填滿的空間以空格填滿,所以第一考量是查詢時的where條仵是否正常(總不 能每次都要Trim掉空格吧)


先以describe [TableName] 查詢表格的schema



裡面有兩筆資料








以正常條仵查詢,結果:正常

select * from event_logs where message='name'










查詢條件「後面」增加空格,結果:正常

select * from event_logs where message='name  '









查詢條件「前面」增加空格,結果:不正常

select * from event_logs where message='  name'








看起來char欄位在查詢時會自動將後面空格略過,以length()函數查詢長度也是不含空格的字數

select length(message) from event_logs where message='name  '











結論:接下來文字欄位應該都以char為設計欄位了


2014年10月19日 星期日

修復vmware無法正常顯示硬碟空間的情況

因為原本設定的硬碟空間太小,增加了空間之後想說順便重組一下,等待的過程中又開了其他程式,沒想到................當機


之後原本的Ubuntu的OS就離我而去了......(竟然沒有顯示硬碟)



後來看到可能的解決方法,因為如果虛擬系統是選擇用多個檔案儲存(建立系統的時候會問用單一檔案還是多個檔案),裡面出現一個檔案名怪怪的,不過要變更名稱前要記得備份喲


開啟第一個.wmdk的檔案,裡面記錄了應該載入的檔案名(果然是這個原因)


將檔案名稱改回正常對應的名稱後,再重新開啟.wmx檔案,果然就正常了






熱門文章