程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL字符集的修改和查看,mysql字符集查看

MySQL字符集的修改和查看,mysql字符集查看

編輯:MySQL綜合教程

MySQL字符集的修改和查看,mysql字符集查看


1.關於MySQL字符集

MySQL的字符集支持(Character Set Support)有兩個方面:

字符集(Character set)和排序方式(Collation)。

MySQL對於字符集的支持細化到四個層次: 服務器(server),數據庫(database),數據表(table)和連接(connection)。

MySQL對於字符集的指定可以細化到一個數據庫,一張表,一列,應該用什麼字符集。

2.查看MySQL字符集

2.1.查看字符集的設置

mysql> show variables like 'character_set_%';

2.2.查看字符集排序設置

mysql> show variables like 'collation_%';

3.修改MySQL字符集

3.1修改服務器級別字符集

a.臨時修改

mysql>SET GLOBAL character_set_server=utf8;

b.永久修改

打開/etc/mysql/my.cnf,在[mysqld]後添加character-set-server=utf8

3.2修改數據庫級

a. 臨時更改

mysql>SET GLOBAL character_set_database=utf8;

b. 永久更改

改了服務器級就可以了

3.3修改表級

mysql>ALTER TABLE table_name DEFAULT CHARSET utf8; 更改了後永久生效

3.4修改列級修改示例

mysql>ALTER TABLE `products` CHANGE `products_model` VARCHAR( 20 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL; 更改了後永久生效

3.5更改連接字符集

a. 臨時更改:mysql> SET GLOBAL character_set_client;

b. 永久更改:打開/etc/mysql/my.cnf,在[client]後添加default-character-set=utf8


C語言怎查看與更改MySQL使用的字符集

最後搞明白了是MySQL使用的字符集的問題。MySQL提供的接口函數prototype為:void STDCALL mysql_get_character_set_info(MYSQL *mysql,MY_CHARSET_INFO *charset);其中MY_CHARSET_INFO 結構體定義如下:typedef struct character_set{unsigned int number; /* character set number */unsigned int state; /* character set state */const char *csname; /* collation name */const char *name; /* character set name */const char *comment; /* comment */const char *dir; /* character set directory */unsigned int mbminlen; /* min. length for multibyte strings */unsigned int mbmaxlen; /* max. length for multibyte strings */} MY_CHARSET_INFO;調用上述函數並打印結果:MY_CHARSET_INFO charset;mysql_get_character_set_info(mysql, &charset);printf(character set number:%d\n, charset.number);printf(character set state:%d\n, charset.state);printf(collation name:%s\n, charset.csname);printf(character set name:%s\n, charset.name);printf(comment:%s\n, charset.comment);printf(character set directory:%s\n, charset.dir);printf(min. length for multibyte strings:%d\n, charset.mbminlen);MySQL提供的接口函數prototype為:int STDCALL mysql_set_character_set(MYSQL *mysql, const char *csname);成功返回0,失敗返回非0。
 

mysql更改默認字符集

你看看我的圖片回答吧,提交回答時百度不讓我回答。



 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved