您好,欢迎访问一九零五行业门户网

MySQL手动安装方法与中文解决方案_MySQL

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:
--------------------------------------------------------------------------------
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重新创建数据库
其它类似信息

推荐信息