Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19285991
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: Mysql/postgreSQL

2008-03-25 20:03:18

花了1天,在Debian Etch Linux上成功安装了MySQL 5.0.27 icc版本,并使用JDBC测试中文成功! bb,Cb-a)  
X`gVUSd  
中文问题的关键是全部使用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环境下测试中文正常。 *dWW 
i riz0>4  
LJx~vw1 6  
1. 下载"mysql-standard-5.0.27-linux-i686-icc-glibc23.tar.gz",推荐ICC版本,据称比GCC性能提高10-20% dD_m=S  
M0%Ta+g  
2. 复制到/usr/local/,解压:tar zxvf mysql-standard-5.x....tar.gz 0j Y<wEF  
~!]=Zs  
3. 添加用户和组mysql: A)1u_  
:,r(jC*1  
groupadd mysql k Ah@U 
C(V+Ej*!"  
useradd -g mysql mysql pa dF> }  
L%1o.`%  
4. 创建符号连接:/usr/local # ln -s mysql-standard-5.x... mysql zS?>3k_q  
}j4ngA  
5. cd mysql,当前目录改为/usr/local/mysql/ #VN )  
V U  
6. 运行脚步初始化数据库:./scripts/mysql_install_db --user=mysql ?iP6>A  
&d7e!bel  
7. 设置权限: Ya?U|d$  
%a@3(Nb6  
/usr/local/mysql # chown -R root . I /382Kg  
i_,4V=U"  
/usr/local/mysql # chown -R mysql data 1lZ:"?xI b  
;i=pFsK  
/usr/local/mysql # chgrp -R mysql zd}aZCu!  
wGFftR  
CbC|#fXM  
-------------------------------------------------------------------------------- AL |HL2B<  
F\&"Y9S(>  
8. 根据需要创建并修改/etc/my.cnf,参考配置: {[,0"~4  
Jt+k N4O9  
[mysqld] \!F1&`)g  
"\xTjn}9-  
# 设置默认为INNODB表,支持事务: Rcx1m)B0  
"ZX|m%'  
default-storage-engine=INNODB ^bJaiL6.2  
Z)|SX{  
# 设置默认的字符集UTF-8: {gW]A k[C  
Se 
character-set-server=utf8 .OH<1^4Njb  
j|j7 j!  
collation-server=utf8_general_ci Tg$0="|  
!"\bwZw  
N%(HX@Fp  
default-character-set=utf8 Zxt{)Na.|  
R+J`Sm+  
# 禁用bdb: l 2ZW1z  
"1J1Cf{jB  
skip-bdb GMS{ tj:  
:x K~*!-<  
9. 启动MySQL: 4-K@jU  
)Mgqc)F|Y  
/usr/local/mysql/bin # ./mysqld_safe --user=mysql & 4X>ZsY:_D;  
DBtjXG^}  
10. 初始化root口令: J`N8W#r(  
;px5X"\6  
/usr/local/mysql/bin # ./mysqladmin -u root -p password "password-of-root" Xd'xXh6Rzp  
RoA+e9*6G  
Enter password: <输入旧口令,直接按Enter> MUsD)0#  
#Vkatr1E  
\[z{iV e  
-------------------------------------------------------------------------------- aK4F_{T.  
11. 以root登录创建数据库: h^W_|zcBye  
/usr/local/mysql # ./mysql -u root -p Cj yKd?  
oX%ZU%[MS  
Enter password: password-of-root _S_BaB{'O  
Wd {-{5H  
12. 创建一个新用户: HF6S}0y  
q4'9x5[  
mysql> create user test identified by 'test-password'; Hp/mnz)O  
qrhIzc>  
13. 创建一个新数据库: F'}4e!rsR  
 OvCx 
mysql> create database testdb default character set utf8 default collate utf8_general_ci; Ss]>fA'OG  
rOAy@"  
务必指定字符集和排序方式,均为UTF-8,这样才能保证创建的表也使用UTF-8。 IW`4[DG  
M!ay:TUE  
l!sdS^=g  
14. 赋予test用户从localhost访问testdb的权限,并使用口令: [ 1?\<~  
7P2y<t{  
mysql> grant all on testdb.* to test@localhost identified by 'test-password'; )i}$RG'k  
wxf11]4  
注意:要使用JDBC从远程连接MySQL,就必须正确设置test用户权限,MySQL的访问权限由用户名,客户端机器名和口令共同组成,上例表示仅允许test用户在本机(localhost)通过口令连接MySQL。 wWC=AcP  
i\ +Xfh8  
eXvLTY-@k  
-------------------------------------------------------------------------------- .B~!UuuQ7  
k9@oJ%%,Y  
15. 停止MySQL服务器: nl` ( c]  
/_1WU-5G  
/usr/local/mysql/bin # ./mysqladmin -u root -p shutdown C6bm:d/y  
\Gy0Ma=yR  
Enter password: password-of-root w%WCi53b&Y  
r?CC1/+j  
STOPPING server from pid file /usr/local/mysql/data/debian.pid mCcU  
JN0 ?6r  
xxx mysqld ended 1!BRI  
中文秘籍: ffoN6$5GS  
/etc/my.cnf中所有与编码相关的设置均要设定为UTF-8,参考步骤8。 q6:n[\5?P  
b;dbdO|  
按以下步骤调试: 3ljVb?^  
P4(h2pvh  
mysql> status; ZOh|;&Xc  
注意characterset相关值,必须保证全部为utf8,否则,修改/etc/my.cnf,参考步骤8。 xX7]iu/p  
3}{Z'*`9W.  
mysql> show variables like '%char%'; Cl^sa!s1;  
除了character_set_filesystem显示为binary外,其余应该全部显示为utf8,若非utf8,修改/etc/my.cnf,参考步骤8。 NLIzvE%n  
n/J#=UJB  
mysql> show variables like '%collation%'; !3#.w"rU9  
显示应该全部为utf8_general_ci,否则,修改/etc/my.cnf,参考步骤8。 bt)`_\'.L  
EI0Ri(; o  
mysqlshow -u root -p -i database-name '(ep~bJB'  
作用:显示数据库详细信息,如果你没有看到utf8_general_ci,而是latin_swedish_ci,说明数据库编码非UTF-8,中文肯定不正常,删之,然后参考步骤13以UTF-8重新创建数据库。
阅读(297) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~