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

noter發表於2007-07-03
*9 ;ary 花了1天,在Debian Etch Linux上成功安裝了MySQL 5.0.27 icc版本,並使用JDBC測試中文成功! 
8)yE(ZB  
x~d� ,o 中 文問題的關鍵是全部使用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環境下測試中文正常。 
9`iA> �@  
HI:gS  
ihwh;,Wc 1. 下載"mysql-standard-5.0.27-linux-i686-icc-glibc23.tar.gz",推薦ICC版本,據稱比GCC效能提高10-20% 
lKTyi{.q  
VKYI4/' ; 2. 複製到/usr/local/,解壓:tar zxvf mysql-standard-5.x....tar.gz 
9mc~K?  
!x_q=t" 3. 新增使用者和組mysql: 
D+ ,G08F  
zl/o~EJM groupadd mysql 
(n /W7!<a  
ZX�C3^ezQ useradd -g mysql mysql 
h,7U~PGh  
d8Ormt 4. 建立符號連線:/usr/local # ln -s mysql-standard-5.x... mysql 
h@z;@$D@  
{&Pq;(d 5. cd mysql,當前目錄改為/usr/local/mysql/ 
4At/cJp.  
eL=fd 6. 執行腳步初始化資料庫:./scripts/mysql_install_db --user=mysql 
v'43}aF9  
RjzCH+%> 7. 設定許可權: 
+$R3~wUTe  
]"f5Q /usr/local/mysql # chown -R root . 
B_,NJnW*wV  
~'5wuN /usr/local/mysql # chown -R mysql data 
2FPB+RD8  
,C jo]Is} /usr/local/mysql # chgrp -R mysql 
In(HTJfh�  
^TY;R2("(  
R&lviA)_ -------------------------------------------------------------------------------- 
K2X 3dbv  
]^dC|Zr2 8. 根據需要建立並修改/etc/my.cnf,參考配置: 
i-Q^  
/fR7$]ibs [mysqld] 
0w�8Z6pU7r  
*oEI:9 # 設定預設為INNODB表,支援事務: 
,o�s0'!y  
@ nu7)~ default-storage-engine=INNODB 
vzeZU &q,  
r`0GR[%_ # 設定預設的字符集UTF-8: 
Ve!D  
E|I!j4QJ character-set-server=utf8 
+!nK+!nI?  
&dV2x_k# collation-server=utf8_general_ci 
FrUwy~dCc  
nx>z c},~  
)DG1 dq� default-character-set=utf8 
<YlFaLNDo  
]1G/vIW@" # 禁用bdb: 
o-JU}&  
vQ Cg'8Bp skip-bdb 
Qn22b?=  
F">�h2Y^ 9. 啟動MySQL: 
sF/&;rr%  
Bo{D<9s /usr/local/mysql/bin # ./mysqld_safe --user=mysql & 
#$&ad7_  
trJW-LQ$! 10. 初始化root口令: 
I.-13�P~  
SY",6*@a /usr/local/mysql/bin # ./mysqladmin -u root -p password "password-of-root" 
X LfL7S  
|L ZnT][U Enter password: <輸入舊口令,直接按Enter> 
*prgR  
8d%}?wCWr  
xa!cs -------------------------------------------------------------------------------- 
/d** g&=P 11. 以root登入建立資料庫: 
"kVbfv,F /usr/local/mysql # ./mysql -u root -p 
@;Yy(Zq  
54Kf7_mfq Enter password: password-of-root 
bw ^5*Y  
s>7PPIa 12. 建立一個新使用者: 
F5Cp-(,  
G6'/%=S~m mysql> create user test identified by 'test-password'; 
2 /i-i{x  
/?4IfO 13. 建立一個新資料庫: 
+k7O kh[_  
D38dS`p8 mysql> create database testdb default character set utf8 default collate utf8_general_ci; 
U/n:Id+O4  
01%1g-X;( 務必指定字符集和排序方式,均為UTF-8,這樣才能保證建立的表也使用UTF-8。 
Y$Q67|  
))paM*D$iv  
)0v:>|C 14. 賦予test使用者從localhost訪問testdb的許可權,並使用口令: 
O9M_T48W'  
=8d h~) mysql> grant all on testdb.* to test@localhost identified by 'test-password'; 
,)%7aCNtk  
B lE9 注意:要使用JDBC從遠端連線MySQL,就必須正確設定test使用者許可權,MySQL的訪問許可權由使用者名稱,客戶端機器名和口令共同組成,上例表示僅允許test使用者在本機(localhost)通過口令連線MySQL。 
( p8XxCP=  
8y3^,  
sx q$4 -------------------------------------------------------------------------------- 
oTKx4#UZ:}  
!5<uAh~ 15. 停止MySQL伺服器: 
EObDD 68M  
/f6aZiMVd /usr/local/mysql/bin # ./mysqladmin -u root -p shutdown 
&UV| LNS  
BoT}7Wxw Enter password: password-of-root 
TLM`6Op  
^t0h STOPPING server from pid file /usr/local/mysql/data/debian.pid 
.se:UX<C  
$c/yqAEWd xxx mysqld ended 
11snk{zq 中文祕籍: 
Wx%cpn6 /etc/my.cnf中所有與編碼相關的設定均要設定為UTF-8,參考步驟8。 
XFf]zb!A  
~`7a BGV 按以下步驟除錯: 
U}+Ts|  
'&K&X6&S#? mysql> status; 
UU4{|(Hd 注意characterset相關值,必須保證全部為utf8,否則,修改/etc/my.cnf,參考步驟8。 
s~H| w QB  
VLh|hOg mysql> show variables like '%char%'; 
j0>)uk3 除了character_set_filesystem顯示為binary外,其餘應該全部顯示為utf8,若非utf8,修改/etc/my.cnf,參考步驟8。 
N9|K!gL@  
')?0}/ mysql> show variables like '%collation%'; 
!qa_5B"`� 顯示應該全部為utf8_general_ci,否則,修改/etc/my.cnf,參考步驟8。 
4:r{6jrlH  
(<I5d> mysqlshow -u root -p -i database-name 
作用:顯示資料庫詳細資訊,如果你沒有看到utf8_general_ci,而是latin_swedish_ci,說明資料庫編碼非UTF-8,中文肯定不正常,刪之,然後參考步驟13以UTF-8重新建立資料庫。

相關文章