升木 发表于 2018-10-10 06:34:57

设定mysql的默认字符集

  mysql> show global variables like '%charac%';    --查看当前mysql采用的字符集
  mysql>show global variables like '%server%';    --查看当前服务端全局字符集
  +----------------------+--------------------+
  | Variable_name      | Value       |
  +----------------------+--------------------+
  | character_set_server | latin1         |
  | collation_server    | latin1_swedish_ci
  +----------------------+--------------------+
  2 rows in set (0.00 sec)
  如何修改为我们熟悉的UTF8字符集呢?以下列出两种:

[*]  修改my.cnf文件,需重启服务,长期有效
  在server下添加两行:
  character_set_server=utf8
  collation_server=utf8_general_ci
  2.修改mysql变量,不用重启,建立新会话时生效,但重启后失效.
  mysql> set global character_set_server=utf8;      --修改当前字符集为utf8,不加global 却仅对当前会话有效.
  3.在客户端指定要使用的字符集
  mysql>set character-set_results=gbk;            --在客户端设定
  4.设定当前会话使用的字符集:
  mysql>set names gbk;                     --设定当前会话使用gbk字符集.
  5.mysql>set character setgbk;                --设定当前系统的变量为GBK
  mysql>set charset gbk;                     --与上句相同
  ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  mysql>show create table 表名;               --查看建表时使用的字符集

  mysql>>
  mysql>>  mysql> show full fields from 表名;               --查看数据表的各列信息,包括列的字符集和可操作权限等
  mysql>alter table 表名 modify 字段名字段类型CHARACTER SET utf8, modify 字段名 字段类型 CHARACTER SET utf8;          --更新字段字符集属性为utf8,我原来的为latin1,不能插入中文
  -------------------------------------------------------------------------------------------------------------------------------------- 练练手 --------------------------------------------------------------
  mysql>create database test2 charset gbk;          --建立test2数据库时指定字符集为GBK,此后在此库下建立新表格,默认采用GKB字符集;
  mysql>alter database test2 charset utf8;          --更改默认字符集为utf8;更改后在此库下新建表格采用utf8字符集。
  mysql>show create database tests;               --查询新建数据时的信息
  mysql> create table ab (id char(10)) charset gbk;    --用gbk字符集新建一个表ab
  mysql>alter table ab charset utf8;               --更改ab默认字符集为utf8
  mysql>create table bd(id char(10) charset gbk);      --建表时指定id字段用gbk字符集
  mysql>show create table ab;                  --查询建ab表时用的信息。
  更改字符集需谨慎!
  修改表和列的字符集时要考虑字符集的兼容,不然在mysql转换过程中会丢失数据,并不可还原。

页: [1]
查看完整版本: 设定mysql的默认字符集