Windows下安裝MySQL解壓版

蝸牛大俠發表於2014-04-07
到官網下載mysql-5.5.10-win32.zip,然後將mysql解壓到任意路徑,如:C:\mysql-5.5.10-win32

開啟計算機->屬性->高階系統設定->環境變數,新建一個環境變數,變數名為:MYSQL_HOME,變數值為你的mysql根目錄,如:C:\mysql-5.5.10-win32
然後在系統變數Path中新增:;%MYSQL_HOME%\bin

在根目錄下面有幾個已經寫好的"my-"開頭的ini檔案,選一個適合你的,如:my-small.ini。複製一份,將檔名修改為my.ini,新增以下內容:
Properties程式碼 複製程式碼 收藏程式碼
  1. [mysqld]   
  2. #設定字符集為utf8   
  3. default-character-set = utf8   
  4. basedir = C:/mysql-5.5.10-win32   
  5. datadir = C:/mysql-5.5.10-win32/data   
  6.   
  7. [client]   
  8. #設定客戶端字符集   
  9. default-character-set = utf8   
  10.   
  11. [WinMySQLadmin]   
  12. Server = C:/mysql-5.5.10-win32/bin/mysqld.exe  


開啟命令提示符,進入%MYSQL_HOME%/bin目錄,執行命令:mysqld -install將mysql安裝到windows的服務。執行成功後會提示:C:\mysql-5.5.10-win32\bin>Service successfully installed.
如果想要解除安裝服務執行命令:mysqld -remove

然後在命令提示符下執行:net start mysql就能啟動mysql了,停止服務輸入命令:net stop mysql。如果想設定mysql是否自動啟動,可以在開始選單->執行中輸入service.msc開啟服務管理進行設定。

第一次登入的時候輸入:

C:\Users\Administrator>mysql -u root

修改密碼:

mysql> update mysql.user set password=PASSWORD('root') where User='root'
mysql> flush privileges


不過我在安裝過程中還是出了點小問題,啟動mysql的時候報錯:

系統出錯。

發生系統錯誤 1067。

程式意外終止。


開啟%MYSQL_HOME%/data目錄下的使用者名稱.err檔案,mysql的錯誤日誌就記錄在這個檔案中。在裡面發現這樣一句話:

110327  0:12:02 [ERROR] MySQL: unknown variable 'default-character-set=utf8'

感覺很奇怪,以前一直都這樣安裝的。最後在mysql的官網上找到一篇中國DBA的求助資訊,原來這是新版本的一個bug,不支援在my.ini中直接設定字符集為utf8。解決辦法是:在default-character-set=utf8前面加上loose-即:
Properties程式碼 複製程式碼 收藏程式碼
  1. [mysqld]   
  2. #設定字符集為utf8   
  3. loose-default-character-set = utf8   
  4.   
  5. [client]   
  6. #設定客戶端字符集   
  7. loose-default-character-set = utf8  


啟動果然不再報錯了。。。那份求助資訊的原文地址:
http://forums.mysql.com/read.php?103,189835,237318

後記:

雖然使用上面的方式加入loose-以後,mysql啟動不再報錯了。但是在插入資料時依然出現了亂碼問題,給我造成了不小的麻煩。
mysql> show variables like '%char%';
通過以上命令檢視字符集編碼,得到如下結果:
+--------------------------+---------------------------------------+
| Variable_name            | Value                                 |
+--------------------------+---------------------------------------+
| character_set_client     | utf8                                  |
| character_set_connection | utf8                                  |
| character_set_database   | latin1                                |
| character_set_filesystem | binary                                |
| character_set_results    | utf8                                  |
| character_set_server     | latin1                                |
| character_set_system     | utf8                                  |
| character_sets_dir       | C:\mysql-5.5.10-win32\share\charsets\ |
+--------------------------+---------------------------------------+
可以看出character_set_database ,character_set_server 的編碼還是預設的latin1。

在[mysqld]配置選項下新增character-set-server = utf8,重啟服務進入mysql再次檢視:
+--------------------------+---------------------------------------+
| Variable_name            | Value                                 |
+--------------------------+---------------------------------------+
| character_set_client     | utf8                                  |
| character_set_connection | utf8                                  |
| character_set_database   | utf8                                  |
| character_set_filesystem | binary                                |
| character_set_results    | utf8                                  |
| character_set_server     | utf8                                  |
| character_set_system     | utf8                                  |
| character_sets_dir       | C:\mysql-5.5.10-win32\share\charsets\ |
+--------------------------+---------------------------------------+

問題完美解決

相關文章