MySQL查看和修改字符集

Posted qq_39297233

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL查看和修改字符集相关的知识,希望对你有一定的参考价值。

一、查看字符集

  1. 查看mysql数据库服务器和数据库字符集

方法一:

show variables like'%character%';

方法二:

show variables like'collation%';

  1. 查看MYSQL所支持的字符集

show charset;

  1. 查看库的字符集

语法:show create database 库名;

show createdatabase dbName\\G

  1. 查看表的字符集

语法:show table status from 库名 like 表名;

show table status from dbName like'table_info';

  1. 查看表中所有列的字符集

语法:show full columns from 表名;

show full columns from table_info;

二、设置字符集

设置字符集一般有两种方法,一种是在创建表的时候设置字符集,另一种是表建成之后修改字符集。

  1. 创建时指定字符集

  • 创建库的时候指定字符集:

语法:create database 库名 default character set=字符集;

createdatabase db2 defaultcharacterset=utf8;

  • 创建表的时候指定字符集:

语法:create table 表名(属性)default character set = 字符集;

createtable test1(id int(6),name char(10)) defaultcharacterset='utf8';

  1. 修改字符集

  • 修改全局字符集

语法:alter database 库名 default character set 字符集;

alterdatabase shiyan defaultcharacterset utf8;

  • 修改表的字符集

语法:alter table 表名 convert to character set 字符集;

altertable test1 converttocharacterset utf8;

  • 修改字段的字符集

语法:alter table 表名 modify 字段名 字段属性 character set 字符集;

altertable test1 modify name char(10) characterset utf8;

CentOS 查看和修改 MySQL 字符集

客户提供了MySQL的环境,但是不支持中文,

通过以下命令查看了MySQL的字符集

连接上 mysql 服务,输入以下命令

mysql> show variables like ‘character_set%‘;

显示如下:

+--------------------------+----------------------------+  
| Variable_name            | Value                      |  
+--------------------------+----------------------------+  
| character_set_client     | latin1                     |  
| character_set_connection | latin1                     |  
| character_set_database   | latin1                     |  
| character_set_filesystem | binary                     |  
| character_set_results    | latin1                     |  
| character_set_server     | latin1                     |  
| character_set_system     | utf8                       |  
| character_sets_dir       | /usr/share/mysql/charsets/ |  
+--------------------------+----------------------------+ 

为了让 MySQL 支持中文,需要把字符集改变成 UTF8,

方法如下:

1. 打开etc/my.cnf

2. 修改成如下内容,保存

[client]  
port=3306  
socket=/var/lib/mysql/mysql.sock  
default-character-set=utf8  
  
[mysqld]  
datadir=/var/lib/mysql  
socket=/var/lib/mysql/mysql.sock  
user=mysql  
# Disabling symbolic-links is recommended to prevent assorted security risks  
symbolic-links=0  
character-set-server=utf8  
  
[mysql]  
no-auto-rehash  
default-character-set=utf8  
  
[mysqld_safe]  
log-error=/var/log/mysqld.log  
pid-file=/var/run/mysqld/mysqld.pid 

3. 重启 mysql 服务:service mysqld restart

再次查看 mysql 编码,已经更新成如下信息

+--------------------------+----------------------------+  
| Variable_name            | Value                      |  
+--------------------------+----------------------------+  
| character_set_client     | utf8                       |  
| character_set_connection | utf8                       |  
| character_set_database   | utf8                       |  
| character_set_filesystem | binary                     |  
| character_set_results    | utf8                       |  
| character_set_server     | utf8                       |  
| character_set_system     | utf8                       |  
| character_sets_dir       | /usr/share/mysql/charsets/ |  
+--------------------------+----------------------------+ 

  

以上是关于MySQL查看和修改字符集的主要内容,如果未能解决你的问题,请参考以下文章

mysql 字符编码的查看与修改

CentOS查看和修改MySQL字符集

Mysql基础教程-Mysql的字符集查看与修改

(转)修改及查看mysql数据库的字符集

CentOS 查看和修改 MySQL 字符集

mysql 修改字符集