程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL手動安裝方法與中文解決方案

MySQL手動安裝方法與中文解決方案

編輯:關於MYSQL數據庫

  花了1天,在Debian Etch Linux上成功安裝了MySQL 5.0.27 icc版本,並使用JDBC測試中文成功!

  中文問題的關鍵是全部使用UTF-8編碼,MySQL 5發布版支持UTF-8,但默認為latin1,Java在內部使用的全部是Unicode,因此要保證JSP頁面以UTF-8編碼,JDBC驅動采用官方Connector4J 5.0.4,在Resin 3.1/Spring 2.0/Hibernate 3.2環境下測試中文正常。

  1. 下載"MySQL-standard-5.0.27-Linux-i686-icc-glibc23.tar.gz",推薦ICC版本,據稱比GCC性能提高10-20%

  2. 復制到/usr/local/,解壓:tar zxvf MySQL-standard-5.x....tar.gz

  3. 添加用戶和組MySQL:

  groupadd MySQL

  useradd -g mysql MySQL

  4. 創建符號連接:/usr/local # ln -s mysql-standard-5.x... MySQL

  5. cd mysql,當前目錄改為/usr/local/MySQL/

  6. 運行腳步初始化數據庫:./scripts/mysql_install_db --user=MySQL

  7. 設置權限:

  /usr/local/MySQL # chown -R root .

  /usr/local/mysql # chown -R MySQL data

  /usr/local/mysql # chgrp -R MySQL

  --------------------------------------------------------------------------------

  8. 根據需要創建並修改/etc/my.cnf,參考配置:

  [MySQLd]

  # 設置默認為INNODB表,支持事務:

  default-storage-engine=INNODB

  # 設置默認的字符集UTF-8:

  character-set-server=utf8

  collation-server=utf8_general_ci

  default-character-set=utf8

  # 禁用bdb:

  skip-bdb

  9. 啟動MySQL:

  /usr/local/mysql/bin # ./mysqld_safe --user=MySQL &

  10. 初始化root口令:

  /usr/local/mysql/bin # ./MySQLadmin -u root -p password "passWord-of-root"

  Enter passWord: <輸入舊口令,直接按Enter>

  --------------------------------------------------------------------------------

  11. 以root登錄創建數據庫:

  /usr/local/mysql # ./MySQL -u root -p

  Enter password: passWord-of-root

  12. 創建一個新用戶:

  MySQL> create user test identifIEd by 'test-passWord';

  13. 創建一個新數據庫:

  MySQL> create database testdb default character set utf8 default collate utf8_general_ci;

  務必指定字符集和排序方式,均為UTF-8,這樣才能保證創建的表也使用UTF-8。

  14. 賦予test用戶從localhost訪問testdb的權限,並使用口令:

  MySQL> grant all on testdb.* to test@localhost identifIEd by 'test-passWord';

  注意:要使用JDBC從遠程連接MySQL,就必須正確設置test用戶權限,MySQL的訪問權限由用戶名,客戶端機器名和口令共同組成,上例表示僅允許test用戶在本機(localhost)通過口令連接MySQL。

  --------------------------------------------------------------------------------

  15. 停止MySQL服務器:

  /usr/local/mysql/bin # ./MySQLadmin -u root -p shutdown

  Enter password: passWord-of-root

  STOPPING server from pid file /usr/local/MySQL/data/debian.pid

  xxx MySQLd ended

  中文秘籍:

  /etc/my.cnf中所有與編碼相關的設置均要設定為UTF-8,參考步驟8。

  按以下步驟調試:

  MySQL> status;

  注意characterset相關值,必須保證全部為utf8,否則,修改/etc/my.cnf,參考步驟8。

  MySQL> show variables like '%char%';

  除了character_set_filesystem顯示為binary外,其余應該全部顯示為utf8,若非utf8,修改/etc/my.cnf,參考步驟8。

  MySQL> show variables like '%collation%';

  顯示應該全部為utf8_general_ci,否則,修改/etc/my.cnf,參考步驟8。

  MySQLshow -u root -p -i database-name

  作用:顯示數據庫詳細信息,如果你沒有看到utf8_general_ci,而是latin_swedish_ci,說明數據庫編碼非UTF-8,中文肯定不正常,刪之,然後參考步驟13以UTF-8重新創建數據庫。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved