顯示具有 MySQL 標籤的文章。 顯示所有文章
顯示具有 MySQL 標籤的文章。 顯示所有文章

2012-08-22

取回mysql的控制權

忘了mysql的root密碼嗎?還是廠商裝的機器但是又不給mysql的root密碼?其實都沒關係,下面的方法可幫你以root的身份登入mysql但是不需密碼,既然可以登入,變更root的密碼又或是新增另一個等同root權限的帳號,就由您決定囉!
P.S linux環境必須可取得root的權限,以root登入、su或是sudo皆可。
  • 環境CentOS-5.3 + mysql5
  1. $> /etc/init.d/mysql stop
  2. $> /usr/libexec/mysqld -u root --skip-grant-tables &
  3. $> mysql
  4. mysql> use mysql;
  5. mysql> update user set password=password('新的密碼') where user='root';
  6. mysql> flush privileges;
  7. mysql> \q
  8. ps -ax
  9. kill -9 mysql ID
  10. /etc/init.d/mysql start

2012-01-18

Navicat 有兩種UTF8的模式嗎??

這兩天在幫老婆大人轉檔的過程中發現了個怪問題,其實以前就有遇過只是沒去深入去探究可能的原因,下面是測試的畫面:

圖1.mysql.exe 直接連接畫面1(MySQL預設狀態)

圖2.mysql.exe直接連接畫面2(MySQL預設狀態)

圖3.localhost-Big5 Connection

圖4.localhost-Big5 Console

圖5.localhost-UTF8 Connection

圖6.localhost-UTF8 Console

圖7.localhost-UTF8-Defaule

圖8.localhost-UTF8-Defaule Console




























































































































































































































圖1、圖2是用mysql-4.1.22-w32.exe以系統預設安裝後的狀態,圖3、圖5、圖7則是三個Navicat上建立的Connection,不同的只是在Encoding的部份設定不同,但是設定的不同卻造成了相同也不同的結果,圖4、圖6、圖8分別是各Connection連線後,以Navicat提供的Console功能,執行show variables like '%c' 所show出的MySQL對於character set的狀態。
圖3與圖5的Encoding設定分別是950 (ANSI/OEM - Traditional Chinese Big5)和65001 (UTF-8),但是玄了,從各別的Console畫面圖4、圖6卻是完全相同,各個character set都沒有變更,再以實際的連線去select資料出來看,卻又沒辦法正常顯示對方連線時可正常顯示的資料。
圖5與圖7的Encoding設定都是UTF-8,但是圖7的UTF-8是勾選 Use MySQL character set而成的,原則上兩個連線都是以UTF-8為character set,但是從Console畫面圖6、圖8來看使用Use MySQL character set的選項才有辦法造成真的UTF-8的存儲使用環境。在實際連線測試select資料也是同樣無法正常顯示對方連線時可正常顯示的資料。
就目前來講這樣的測試還無法證明什麼,到底是MySQL的問題還是Navicat的Bug,不過自己覺得MySQL的character set的問題真的是個大麻煩,但也因為Navicat這個對UTF-8的怪原因,讓人浪費了不少zZZ的時間,不過至少知道一個結果..那就是如果要使用Navicat將原先Big5編碼的資料庫轉為UTF-8編碼時,UTF-8 Connection properties 的 "Use MySQL character set" 一定要勾啦!!

2012-01-17

MySQL Big5 to UTF8 快速轉碼

延伸閱讀Navicat 有兩種UTF8的模式嗎?? <-- 有要做的人一定要先看

昨天要幫老婆大人把客戶從MySQL dump出來的資料,從原先的Big5轉成UTF8再塞進去MySQL裡。原始檔案有將近900M,有點大所以大部份的編輯軟體都拿他沒輒,所以就開到Linux裡用iconv直接轉,轉是轉完了但是總會有"\?"的問題造成匯入不成功,去問了一下G大這有可能是換行字元的問題,為了快速找到解決方案就先把問題的研究先放著,解決問題優先。
[Navicat]是一套資料庫管理工具支援多種資料庫,可下載試用。它本身提供Data Transfer的功能可以直接讓線上的資料庫轉到另一個資料庫或輸出成檔案。轉換細節如下:


環境:Server: VMwarePlayer3.1.5 + Debian6.0.3 + MySQL 5.1.49
          Client: WinXP with SP3 + Navicat10


























  1. 在Navicat環境下,建立兩個Connections,一個Encoding設成950 (ANSI/OEM - Traditional Chinese Big5),另一個設成65001 (UTF-8)



  2. 點選 Tools -> Data Transfer -> General,設定Source Connection為Big5的那個,當然Target Connection就得設成UTF8的那個了,Database依需求設定



  3. 在Data Transfer畫面下點選Advanced,依照你的需求增減相關的選項,在本例中我將Include character set及Use hexadecimal format for BLOB取消。Include character set如果設定會把目的table也設成Source table的character設定,所以取消;至於Use hexadecimal format for BLOB則是因為我的資料庫有使用到BLOB的欄位,轉換時會造成錯誤,所以取消。



  4. 接著就按Start等待結果啦~

2011-02-13

Delphi+ZesoLib+MySQL Embedded

去年10月份因緣際會看了一本多年前的暢銷書「富爸爸,窮爸爸」,而興起了投資股票的想法,也許是新手的運氣,不但沒有虧損還小賺了一筆。
不過再接著就沒那麼好運氣了啦!!但是卻讓我學到了點經驗。
投資股票就像那些所謂的專家講的「要做功課」。目前的相關資訊是有但卻相當分散,所以興起利用AP到網路上將資訊蒐集下來,但是不想採用Client/Server的架構,所以選定的組合是以Delphi7+ZesoLib+MySQL embedded。
起初以ZeosLib的sample進行測試先確認libmysqld.dll的版本,測試MySQL-5.x版都有問題,但在網路上找到的單一檔案卻可以,進行一些測試後確定使用MySQL-4.1.22版可正常讀取及寫入。