基本上我之前說過,MySQL 官方建議的方式是用 mysqldump 把資料丟出來再丟回去,確保裡面的內容不會像 4.0 -> 4.1 這樣炸了一堆。不過很多人 (包括我) 都蠻喜歡用 binary upgrade 來升級的,根據經驗除了 4.0 -> 4.1 有碰過大地雷以外其他版本都沒有太大的問題。
Read the rest of this entry »
Archive for MySQL
binary upgrade MySQL on FreeBSD
backup mysql databases
現在網路上應該還有不少教學是教人把 database 目錄整個複製來備份 MySQL 的 (尤其在竹貓星球,我看到一堆人都這樣搞),這種做法在 minor upgrade 的時候應該不會有大問題,但是在 major version upgrade 的時候通常都會出問題。
Read the rest of this entry »
phpMyAdmin Tips
最近發現有關 phpMyAdmin 的小技巧:
- config.inc.php 在 2.8 之後會改由安裝介面產生 (執行 scripts/setup.php),開個 config/ 目錄並且把 config.inc.php 放進去 (UN*X 要開啟 others 的寫入權限),這個安裝介面就會把檔案寫入和讀入。之後再手動把檔案搬回 phpMyAdmin 的目錄底下並且把寫入權限取消。不開 config 目錄的話也可以選 download 再自己傳上去,或是選 display 然後開 ssh 貼上檔案,反正高興就好 :P
AllowAnywhereRecoding是個很好用的東西,系統有裝 iconv 或是 recode 的話最好把這個功能打開。在 MySQL 4.0 之前的版本這個東西可以讓你用和 PMA 不同的 charset 去看資料庫的內容;在 4.1.2 以後的版本,這個功能可以讓你選擇輸出的 SQL charset,如果你不能用 mysqldump 的話用這個功能也能達到同樣的效果,前提是你要搞清楚選擇哪個 charset 來輸出。UploadDir和SaveDir最好也設一下,這東西可以讓你用 ftp 或是其他方式傳 sql 到機器上然後再由 PMA 去執行,或是把輸出的 sql 放到機器的目錄再給你下載回來。方便的地方在於處理很大的 sql 的時候直接透過 http 上傳或是下載常常會因為 time out 造成檔案不完全,這個功能就是在彌補這方面的問題。- IIS 和 php-cgi 的使用者也可以用 http auth 的方式 login 了,這是在 php 4.3.9 之後的功能,詳細內容請參考 Documention.html 裡面的 FAQ 1.32 和 1.35,我沒試過 (因為 Windows 底下 PHP 還是跑 Apache Module 比較方便 :Q)。
internal charset conversion of MySQL
花了點時間翻 MySQL Manual,終於搞清楚 MySQL 是把哪個 charset 換成哪個了。和 collation 沒什麼關係,collation 根據 manual 的說法只是拿來判斷文字用的,看來一堆人誤解了 collation 的用途。
MySQL 4.1 以後和 charset 有關的變數有以下幾個:character_set_client, character_set_connection, character_set_database, character_set_results, character_set_server, character_set_system。MySQL 會把收到的 query 當成是 character_set_client ,然後轉換成 character_set_connection;然後 server 這邊是把內容轉成 character_set_result 輸出。這之間的關係如果亂了,資料的內容就會被亂轉來轉去的,最後就看不到我們要的東西。
Read the rest of this entry »
reset MySQL root password
這個案例是寫給那些不小心忘掉 root 密碼的人、不小心把 root 刪掉的人、不小心把 root 權限改掉的人… (總而言之,都是一些不小心對 MySQL 做了蠢事的人 :p) 用的,告訴他們比把 MySQL 砍掉重練還要快的方法。
下面是以更改 root 的密碼為範例,要做其他事情的人請自己參考並且更改內容。
Read the rest of this entry »
install Apache+PHP+MySQL from ports
ports 是 FreeBSD 裡面我最喜歡用的一樣功能,我認為它比 rpm 好用多了 (FreeBSD 的 ports 裡面也有 rpm,但是應該沒什麼人在用才對 :Q)
底下是個小小的示範用 ports 把 Apache, PHP, MySQL 三個現在架網頁伺服器常用的軟體安裝過程。範例裡面用到的軟體版本只供參考,要安裝不同的版本換個目錄名稱就可以了。例如想安裝 Apache 2.2.2 的話就到 www/apache22/ 而不是範例中的 www/apache20/。
Read the rest of this entry »
MySQL 4.1 new password hashing
MySQL 在 4.1 版的時候把它的 password hashing 方式改了,和舊的 client 不相容。但是 php4-Win32 裡面的 libmysql.dll 一直還是用 3.23 的 client library,所以在 Windows 上面跑 PHP4 + MySQL 4.1 以上的版本就會出問題。
Read the rest of this entry »
convert phpbb2 to utf-8
這篇是我把 phpBB 2.0.17 轉成 UTF-8 的過程,內容包括 MySQL 裡面的資料轉換。
執行概況:
安裝好 MySQL 之後把資料庫預設為 UTF-8,接著把 phpBB 轉成 UTF-8。之後發現舊的資料讀取會有問題,需要一起轉換。
Read the rest of this entry »