精彩推荐

mysql服务器字符集查询和设置方法

690人阅读  0人回复   查看全部 | 阅读模式 | 复制链接   

1

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2015-3-14 12:17:07
分享到:
1、查看 MySQL 数据库服务器和数据库字符集
  show variables like '%char%';
  2、查看当前安装的 MySQL 所支持的字符集。
  show charset;
  3、设置编码:
  修改my.cnf
  vi /etc/my.cnf
  在[client]下添加
  default-character-set=utf8
  在[mysqld]下添加
  default-character-set=utf8
  保存,重启mysql即可;
  修改数据库的字符集
  mysql>use mydb
  mysql>alter database mydb character set utf-8(utf8);
  创建数据库指定数据库的字符集
  mysql>create database mydb character set utf-8(utf8);
  或者用mysql命令修改编码
  通过MySQL命令行修改:
  set character_set_client=utf8;
  set character_set_connection=utf8;
  set character_set_database=utf8;
  set character_set_results=utf8;
  set character_set_server=utf8;
  set character_set_system=utf8;
  set collation_connection=utf8;
  set collation_database=utf8;
  set collation_server=utf8;
  mysql修改表、字段字符集
  把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:
  ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
  如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
  只是修改表的默认字符集:
  ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
  如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
  修改字段的字符集:
  ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
  如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
  查看数据库编码:
  SHOW CREATE DATABASE db_name;
  查看表编码:
  SHOW CREATE TABLE tbl_name;
  查看字段编码:
  SHOW FULL COLUMNS FROM tbl_name;
  MySQL中的字符集转换过程
  1. MySQL Server收到请求时将请求数据从character_set_client转换为character_set_connection;
  2. 进行内部操作前将请求数据从character_set_connection转换为内部操作字符集,其确定方法如下:
  • 使用每个数据字段的CHARACTER SET设定值;
  • 若上述值不存在,则使用对应数据表的DEFAULT CHARACTER SET设定值(MySQL扩展,非SQL标准);
  • 若上述值不存在,则使用对应数据库的DEFAULT CHARACTER SET设定值;
  • 若上述值不存在,则使用character_set_server设定值。
  3. 将操作结果从内部操作字符集转换为character_set_results。
  其他注意事项
  • my.cnf中的default_character_set设置只影响mysql命令连接服务器时的连接字符集,不会对使用libmysqlclient库的应用程序产生任何作用!
  • 对字段进行的SQL函数操作通常都是以内部操作字符集进行的,不受连接字符集设置的影响。
回复

使用道具 举报

快速回复 返回顶部 返回列表