每月彙整: 2007 年 3 月

MySQL 4.1.x編碼問題(UTF8)

剛剛寫code發現在phpMyAdmin裡面的中文看起來非常正常 不過程式print 卻都是亂碼,很怪!! 後來google 了一下,發現是
有 SUPER 權限的 user 在連線的時候不會去執行 init_connect

所以說即使我的 init_connect=’SET NAMES utf8′ 還是沒用
因為我db是用root連的……….
所以才會是亂碼~~ :*-):
直接去開了一個新帳號來用就好了。

ref.

MySQL 4.1.x SET NAMES UTF8

MySQL backup and restore

因為翰x要移機,所以要把db 上的資料轉出來,不過因為用mysql db < db.sql
常常會出他媽的鬼問題,很杜爛!!!
所以單純把資料dump 成 text file 會是一個比較好的方式,然後再透過mysqlimport
或是LOAD DATA INFILE
我寫了兩個小小的scripts
就是dump和 restore
有須要的人請自行服用 ::-p:
1.import_db.sh

db_dir=$1
db=$2
for file in `find $1 -type f -depth 1 | egrep txt`
do
table=`echo $file |cut -d “/” -f 5|cut -d “.” -f 1`
echo ‘import data to ‘$table’ finished ‘
/usr/local/bin/mysql -u root -p -e “load data infile ‘$file’ into table $table” $db
done

2.dump_db.sh

date=`date +%Y%m%d`
db=$1
dump_dir=$2
charset=$3
#Dump DB structure
/usr/local/bin/mysqldump -uroot -p -d $db > $dump_dir/$db.sql
# Dump Data
chown mysql:mysql $dump_dir
/usr/local/bin/mysqldump -u root -p -t –default-character-set=$charset –tab=$dump_dir $db
#tar -zcf /tmp/$db.$date.tar.gz $dump_dir

我的shell script 寫的很爛~~
別見笑~哈 :8-):

PS:剛剛在刻這篇的時後,邊和lyz講電話,一邊在shell 上工作
沒想到,他媽的不小心
rm -rf * .txt(是想刪掉所有的txt的)
結果因為多打了一個space變成我把資料全刪了
我當時在 ~ 一堆東西沒了~~~幹!!! ::S:

近況!!!

最近一整個很忙~~~
1.就是公司的事(從以前到現在沒閒過)。
2.最近在跑一個Apollo 計畫,整個很有趣,等做好(應該做得好吧)再來寫份心得。 ::-p:
3.下星期翰x要移機,有不少資料要轉,資料量又還不小(不太可能用adsl來傳的量),要請人家燒dvd出來,再慢慢弄。
4.下星期今x好像要換機,整個也很忙,目前打算先做好os,再慢慢弄。
5.好死不死剛好3月的時後學開車,不過卻尬到最近一堆事,讓我整個很累(我學早上的),肝都快爆了,還要早起。 ::S:

其實刻這篇不是真的要報告近況,而是要告訴自已還有今x和翰x要弄~怕忘記 :(h):

ps:最近在弄gettext+smarty+ajax 等很熟悉,且run的很順,再寫篇報告。 ::-p:

換Apache To Lighttpd

OK 很簡單~~
ports 裝一裝後
我只用了幾個用得到的mod
“mod_alias”,”mod_access”,”mod_fastcgi”,”mod_simple_vhost”,”mod_accesslog”
就這些
我是先讓lighttpdapache 並用
把lighttpd 開81 port 去run 看看有沒有問題 ::-p:
沒問題的話~~再把apache 停掉 然後把lighttpd 的port 改成80 就好了。
然後因為有用fastcgi
所以把他原本comment 起來的fastcgi 部份拿掉comment
至於virtual host 的部份
Manual 上有寫到
DocumentRoot = server-root + hostname + document-root

server-root + hostname + document-root

然後每個virtual host 的設定用
$HTTP[“host”] == “host”{
}
來區別
範例如下~~
$HTTP[“host”] == “blog.abcd.tw”{
simple-vhost.server-root = “/usr/local/web/”
simple-vhost.default-host = “abcd”
simple-vhost.document-root = “/wordpress/”
alias.url = ( “/file/” => “/home/file/” )
accesslog.filename = “/var/log/lighttpd_blog.abcd.tw_access.log”
}
#這個的Document = /usr/local/web/abcd/wordpress/

$HTTP[“host”] == “www.abcd.tw”{
simple-vhost.server-root = “/usr/local/web/”
simple-vhost.default-host = “”
simple-vhost.document-root = “/”
alias.url = ( “/photo/” => “/usr/local/web/gallery/”,”/abcd/” => “/usr/local/www/abcd/” )
}
這個的Document = /usr/local/web/

ok 就這麼簡單~~(哈~因為我目前只用到這些~什麼access, rewrite 之類的我都沒用到,所以很簡單) ::-p:

The plugin of VIM =>taglist

要裝taglist 之前會用到
ctags
所以乖乖的先去裝上吧

# cd /usr/ports/devel/ctags/
# make install clean

然後就可以去抓taglist
然後去你vim的資料夾底下解壓就可以
像我的是vim7
# cd /usr/local/share/vim/vim7/
# unzip taglist_XXX.zip

基本上這樣就裝好了
然後你可以參考一下我的.vimrc的配置如下

” FOR Tlist
let Tlist_Ctags_Cmd = “/usr/local/bin/exctags” ” FOR BSD
let Tlist_Auto_Open=1 ” 開啟vim/gvim 的時自動打開 Tlist
let Tlist_Auto_Update=1 ” 自動更新目前的 tag 列表
let Tlist_Enable_Fold_Column=1
let Tlist_Sort_Type = “name” ” 顯示的 tag 排序方式:name/order
let Tlist_WinWidth = 30 ” Tlist 視窗的寬度
let Tlist_Show_One_File = 0 ” 是否只顯示目前文件的 tag
let Tlist_Exit_OnlyWindow = 1 ” 關閉打開的文件的同時,也關閉taglist視窗
let Tlist_Use_SingleClick = 1
map <F8> :Tlist<CR>:<CR> “按F8 自動打開Tlist
map <F9> :wincmd p<CR> “兩個視窗切換