MySQL不乱码的思想:建议中英文环境选择utf8

 

  1. Linux系统服务端

    [root@shnne 3306]# cat /etc/sysconfig/i18n

    LANG=en_US.UTF-8

    #LANG="zh_CN.GB2312"

    SYSFONT=latarcyrheb-sun16

    [root@shnne 3306]# . /etc/sysconfig/i18n

    [root@shnne 3306]# echo $LANG

    en_US.UTF-8

    提示:Linux客户端也要更改为对应的字符集,例如:SecureCRT

     

  2. MySQL数据库的客户端字符集

    1

    [root@shnne 3306]# mysql -uroot -p123456

    mysql> set names utf8

    2

    [root@shnne 3306]# mysql -uroot -p123456 --default-character-set=utf8

     

    永久生效修改

    更改my.cnf客户端模块参数,可以实现set names utf8的效果,并且永久生效

    [client]

    default-character-set=utf8

    提示:无需重启,退出重新登录生效

     

  3. MySQL服务端

    更改my.cnf的参数

    [mysqld]

    default-character-set=utf8 #适合5.1及以前的版本

    character-set-server=utf8 #适合5.5

     

  4. MySQL的数据库中建库建表

    指定字符集建库:

    mysql> create database shnne DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    Query OK, 1 row affected (0.00 sec)

     

    mysql> show create database shnne\G;

    *************************** 1. row ***************************

           Database: shnne

    Create Database: CREATE DATABASE `shnne` /*!40100 DEFAULT CHARACTER SET utf8 */

    1 row in set (0.00 sec)

     

    ERROR:

    No query specified

    提示:建库的字符集是随着mysql数据库默认生成的,如果已经设置了utf8字符集,建库的时候就可以不加指定字符集参数了。

     

    指定字符集建表:

    mysql> use shnne;       

    Database changed

    mysql> create table student(

        -> id int(4) not null auto_increment,

        -> name char(10) not null,

        -> primary key(id),

        -> key index_name(name)

        -> );

    Query OK, 0 rows affected (0.01 sec)

     

    mysql> show create table student\G;  

    *************************** 1. row ***************************

           Table: student

    Create Table: CREATE TABLE `student` (

      `id` int(4) NOT NULL AUTO_INCREMENT,

      `name` char(10) NOT NULL,

      PRIMARY KEY (`id`),

      KEY `index_name` (`name`)

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8

    1 row in set (0.00 sec)

     

    ERROR:

    No query specified

     

  5. 开发程序的字符集

    用简体 UTF8


标签:

上一篇防止人为误操作MySQL数据库(怎么防止被人修改数据库文件)
下一篇MySQL主从同步配置步骤(mysql主从同步如何实现)

相关文章