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

來源:互聯網
上載者:User

花了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重新建立資料庫。

相關文章】

  • MySQL 5.0在windows上的安裝詳細介紹
  • MySQL在ArchLinux上的安裝與啟動
  • 如何安裝並測試MySQL

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.