清空資料表
truncate table TABLE_NAME;
設定Auto Increment
參考資料:
http://www.lifeaftercoffee.com/2006/02/17/how-to-create-auto-increment-columns-in-oracle/
先建立一個sequence
create sequence SEQUENCE_NAME
start with 1
increment by 1
nocache;
再建立一個trigger
create or replace trigger TRIGGER_NAME
before insert
on TABLE_NAME
referencing NEW as NEW
for each row
begin
select SEQUENCE_NAME.nextval into :NEW.AUTO_INCREMENT_COLUMN from dual;
end;
/
這樣就完成了
SEQUENCE有下列參數:MINVALUE、MAXVALUE、START WITH、INCREMENT BY、CACHE、NOCACHE、CYCLE
要加nocache,sequence才不會亂跳
SEQUENCE到達最大值之前不能重新計數,只能用DROP刪除後再重新CREATE建立。
可以用ALTER來修改SEQUENCE的參數
ALTER SEQUENCE seq01
INCREMENT BY 100;
用NEXTVAL取得下一個值
SELECT seq01.NEXTVAL FROM DUAL;
用CURRVAL取的目前值
SELECT seq01.CURRVAL FROM DUAL;
根據CD長輩的教誨
首先
emerge -DuN world
接著
emerge –depclean
最後
revdep-rebuild
這期間如有套件出錯,則
emerge –oneshot 套件
這樣可重編一次該套件,卻不把該套件加入world list裡。
在一台新重灌好的Gentoo server裡編了IPv6的支援,在開啟openssh時,會有
refused connect from 0.0.0.0
這樣的error message出現,tcp_wrappers的hosts.deny運作也不太正常。
後來找到解決方法為,讓openssh只使用IPv4,在/etc/ssh/sshd_config裡做了以下設定即可
AddressFamily inet
手賤不小心把python unmerge了,所以emerge就壞掉不能用了。
手動把python下載回來安裝後還是無效。
再看了這篇 Manually fixing broken portage installations 仍然無效。
最後讓我google到了這篇,才解決了這個問題。
解決方式如下:
# wget http://www.python.org/ftp/python/2.4.4/Python-2.4.4.tar.bz2
# cd Python-2.4.4
# ./configure –with-fpectl –infodir=/usr/share/info/ –mandir=/usr/share/man
# make
# make install prefix=/usr
# rm /usr/bin/python 2>/dev/null
# ln -s /usr/bin/python2.4 /usr/bin/python2
# ln -s /usr/bin/python2 /usr/bin/python
然後再重新emerge python一次。
例如:
要單獨為net-analyzer/net-snmp這個package加上lm_sensors這個USE flag
echo 『net-analyzer/net-snmp lm_sensors』 >> /etc/portage/package.use
因為在之前改用feedburner來整合我的Blog、flickr、del.icio.us的feed,但一直忘記wordpress本身也還是有提供feed的,昨天試了一下本來要把那些feed通通導到feedburner去,找到相關資料試了好久始終沒成功,最後放棄。
今天忽然在這篇發現原來feed的auto-discovery是放在各個theme裡得header.php,於是便在那邊把link改掉指到我的feedburner的feed那邊去嚕,這樣feedburner就還是能夠從wordpress本身提供的feed拿到資料,而一般人直接用browser訂閱時卻會直接導到feedburner的feed 去了。
請大家用這個訂閱
http://feeds.feedburner.com/leolo
FreeBSD的帳號密碼及其他資訊都存在master.passwd,Linux則分別存在passwd及shadow中。
master.passwd@FreeBSD
帳號:密碼:UID:GID:Login Class:Change:Expire:Full Name:家目錄:Login SHELL
- Login Class:幾乎沒在用了,通常是空的
- Change:強迫使用者改密碼的時間週期, 0 表示不設定
- Expire:使用者帳號的使用期限, 0 表示不設定
passwd@Linux
帳號:密碼:UID:GID:Full Name:家目錄:Login SHELL
FreeBSD比Linux多了三個欄位
所以我們將那三個欄位捨棄,並把密碼那欄設為x,因為Linux的密碼是存在shadow
cat master.passwd.bsd | awk -F":" '$3>=1002&&$3 passwd.linux
shadow@Linux
帳號:密碼:3:4:5:6:7:8:9
- 3.last password change
- 4.days until change allowed
- 5.days before change required
- 6.days warning for expiration
- 7.days before account inactive
- 8.date when account expires
- 9.reserved for future use
接著處理shadow
cat master.passwd.bsd | awk -F":" '$3>=1002&&$3 shadow.linux
再來處理group
cat group.bsd | awk -F":" '$3 >=1002&&$3 group.linux
接著把他們附加到原本的檔案後面
cat shadow.linux >> /etc/shadow
cat passwd.linux >> /etc/passwd
cat group.linux >> /etc/group
從MySQL4.0升級至5.0。
首先把資料dump出來 。由於先前用4.0時我的資料是存成latin1,不管是Big5或是wordpress的UTF-8存進去後都是變成lantin1,所以dump出來後要用iconf或piconf把他轉成UTF-8,記得dump出來時要加上–default-character-set=latin1
如果原先是Big5的資料,像我的Coppermine Photo Gallery,dump出來後就直接把Big5轉成UTF-8即可
#mysqldump -u帳號 -p –default-character-set=latin1 資料庫 >output.sql
#piconv -f big5 -t utf8 output.sql >utf8.sql
如果原先是UTF-8的資料,像是wordpress,dump出來後要先轉成Big5後,再把他轉成UTF-8,因為原先dump出來的是偽裝成UTF-8的lantin1不是真正的UTF-8
#mysqldump -u帳號 -p –default-character-set=latin1 資料庫 >output.sql
#piconv -f utf8 -t big5 output.sql > big5.sql
#piconv -f big5 -t utf8 big5.sql >utf8.sql
接著MySQL5.0灌好後,MySQL的my.cnf設定檔內要加入以下設定
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
但也有看到資料說[mysqld]那邊加上 default-character-set=utf8跟 default-collation=utf8_general_ci後,一些舊的使用Big5編碼的php程式,又沒有加入連資料庫時指定的編碼方式的 相關code的話,那些程式就會爛掉,所以目前我是沒有加上那兩行。接著建立空的資料庫準備把dump出來的資料import進去,SQL語法應該類似下面這樣,要加上DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
CREATE DATABASE `abc` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
再來就是把剛剛dump出來後的sql檔在import進去了,這裡有兩點要注意的。
- 剛剛dump出來的sql檔如果原先是Big5里面會有一些像是許功蓋這些字後面會多了一個』",記得用文字編輯器把他消掉
- import進去時記得還要先修改一下dump出來的sql檔,在最前面加上
SET NAMES utf8;
SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_RESULTS=utf8;
再來把每個資料表後面的
TYPE=MyISAM;
改成
ENGINE=MyISAM DEFAULT CHARSET=utf8;
都改好後就可以把他import進去了
#mysql -u帳號 -p 資料庫
不過以上實在有點麻煩,所以我把多餘的』/』消掉後,就直接用phpMyAdmin把他import進去了,import時記得文字編碼檔案要選utf8即可
順便記一下寫php時如是配合UTF-8的資料庫的話該注意,在真正送出query前要先加入以下三行
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER_SET_CLIENT=utf8");
mysql_query("SET CHARACTER_SET_RESULTS=>utf8");
檢查語系的SQL語法
show variables like "%character%";
以上是參考下列資料作出來的紀錄
二月 6th,2006
MySQL | tags:
MySQL,
UTF8 |
No Comments