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

中文问题的关键是全部使用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重新创建数据库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值