共享主機的mysql備份策略

不使用mysqldump的備份方式,你會用什麼方法?要怎麼備份msql,專家都說,用mysqldump,當然這也是憨人蝸牛會用的方法,一般的主機這麼用,不會有問題,但是共享主機,你拿不到root的權限,要怎麼備份資料咧!是的!沒有想像中的簡單,主機商只會叫你花更多的錢,買更專屬的方案。

一般的備份指令可以寫成script放在cron table中執行。 Read more

#1071 – Specified key was too long; max key length is 1000 bytes

為DB加index會運到的問題為了要加速資料庫的運作,很多設計師都會在資料庫加索引。我自己會使用的資料庫是mysql,mysql也有支援index這個基本的功能,當然最近我為了測試一些東西,也加了index進資料表,結果就出現了「#1071 – Specified key was too long; max key length is 1000 bytes」錯誤,後來查了一下才知道是怎麼回事,寫下來記錄一下,避免日後忘記。

明明3個欄位怎麼算都沒有1000byte,出了這個訊息,實也摸不著頭緒,原來待誌不是憨人(蝸牛)所想的,聽我慢慢道來。
Read more

轉貼:用distinct在MySQL中查詢多條不重複記錄值

mysql的distinct指令是常用的指令最近有機會操作mysql的資料庫,有遇到一些資料查詢上的問題,所以就上網去查了一下。剛好有一篇文章在討論,轉貼如下=====>

在使用mysql時,有時需要查詢出某個字段不重複的記錄,雖然mysql提供有distinct這個關鍵字來過濾掉多餘的重複記錄只保留一條,但往 往只用它來返回不重複記錄的條數,而不是用它來返回不重記錄的所有值。
Read more

轉貼:Mysql 的Row Lock 與 Table Lock

資料來源Neo’s Blog

先前介紹過 SELECT … FOR UPDATE 的用法,不過鎖定(Lock)的資料是判別就得要注意一下了。由於 InnoDB 預設是 Row-Level Lock,所以只有「明確」的指定主鍵,MySQL 才會執行 Row lock (只鎖住被選取的資料例) ,否則 MySQL 將會執行 Table Lock (將整個資料表單給鎖住)。
舉個例子:

假設有個表單 products ,裡面有 id 跟 name 二個欄位,id 是主鍵。

例1: (明確指定主鍵,並且有此筆資料,row lock)

SELECT * FROM products WHERE id=’3′ FOR UPDATE;

例2: (明確指定主鍵,若查無此筆資料,無 lock)

SELECT * FROM products WHERE id=’-1′ FOR UPDATE;

例2: (無主鍵,table lock)

SELECT * FROM products WHERE name=’Mouse’ FOR UPDATE;

例3: (主鍵不明確,table lock)

SELECT * FROM products WHERE id<>’3′ FOR UPDATE;

例4: (主鍵不明確,table lock)

SELECT * FROM products WHERE id LIKE ‘3’ FOR UPDATE;

註1:
FOR UPDATE 僅適用於 InnoDB,且必須在交易區塊(BEGIN/COMMIT)中才能生效。

註2:
要測試鎖定的狀況,可以利用 MySQL 的 Command Mode ,開二個視窗來做測試。

如果是使用Appserver環境,請把Mysql服務停下來,打開my.ini,找到skip-innodb,前面加上註解變成
#skip-innodb

重新啟動服務,就可以在資料儲存引擎中找到innodb的選項,就可以進行lock table/lock row的功能。

ARCHLinux再探

前幾天用自己的老機器在公司測試ArchLinux,因為很多網友推薦,這是一套很彈性,效能好,又不吃資源的Linux作業系統,而且針對i686的CPU進行編譯,所以就算是新機器,也有支援。

公司那台舊電腦是AMD 散步龍的3000+、RAM1G、HD Sata1 80G(這個規格超屌~哈),怎麼裝就是裝不起來,手邊又有事情在忙,所以就丟下來沒有處理。 Read more

dotproject php mysql問題

安裝完Cent OS 5.4版,再經過yum更新之後的PHP版本 5.1.6,但是我花了很久的時間
dotproject專案管理軟體2.1.3怎麼安裝就是有問題,最後降級使用2.1.2/2.1.1版的DotProject,但是這兩個版本有安全上的問題,而且我Run完之後,有出現操作上異常的Bug。
可以在CeontOS5.4版上怎麼安裝就是有問題,還好,我還有一台不是這麼重要的Linux主機,就拿來做實驗。

Read more