mysql字符集

  恰當的字符集,暢快的體驗!mysql

00、Oracle字符集

Subsets and Supersets   #子集與超集sql

Table A-11 Subset-Superset Pairs數據庫

Subset(子集)服務器

Superset(超集)oracle

AR8ADOS710app

AR8ADOS710Tdom

AR8ADOS720socket

AR8ADOS720Tspa

AR8ADOS720Tcode

AR8ADOS720

AR8APTEC715

AR8APTEC715T

AR8ARABICMACT

AR8ARABICMAC

AR8ISO8859P6

AR8ASMO708PLUS

AR8ISO8859P6

AR8ASMO8X

AR8MUSSAD768

AR8MUSSAD768T

AR8MUSSAD768T

AR8MUSSAD768

AR8NAFITHA711

AR8NAFITHA711T

AR8NAFITHA721

AR8NAFITHA721T

AR8SAKHR707

AR8SAKHR707T

AR8SAKHR707T

AR8SAKHR707

BLT8CP921

BLT8ISO8859P13

BLT8CP921

LT8MSWIN921

D7DEC

D7SIEMENS9780X

D7SIEMENS9780X

D7DEC

DK7SIEMENS9780X

N7SIEMENS9780X

I7DEC

I7SIEMENS9780X

I7SIEMENS9780X

IW8EBCDIC424

IW8EBCDIC424

IW8EBCDIC1086

KO16KSC5601

KO16MSWIN949

LT8MSWIN921

BLT8ISO8859P13

LT8MSWIN921

BLT8CP921

N7SIEMENS9780X

DK7SIEMENS9780X

US7ASCII

See Table A-12, "US7ASCII Supersets".

UTF8

AL32UTF8

WE8DEC

TR8DEC

WE8DEC

WE8NCR4970

WE8ISO8859P1

WE8MSWIN1252

WE8ISO8859P9

TR8MSWIN1254

WE8NCR4970

TR8DEC

WE8NCR4970

WE8DEC

WE8PC850

WE8PC858

注意:

  直接修改oracle字符集,子集向超集轉變。是沒問題的。漢字在gbk下佔2個字節、utf8下是3個字節

0一、mysql字符集關係

十一、查看mysq支持的字符集

show character set;

2二、查看當前數據庫使用的字符集

show variables like '%character%';

參數解釋:

mysql和字符集有關的變量

character_set_client:     客戶端請求數據的字符集

character_set_connection:從客戶端接收到數據,而後傳輸的字符集

character_set_database:  默認數據庫的字符集,不管默認數據庫如何改變,都是這個字符集;若是沒有默認數據庫,那就使用 character_set_server指定的字符集,這個變量建議由系統本身管理,不要人爲定義。

character_set_filesystem: 把os上文件名轉化成此字符集,即把 character_set_client轉換character_set_filesystem默認binary是不作任何轉換的

character_set_results:    結果集的字符集

character_set_server:    數據庫服務器的默認字符集

character_set_system:   這個值老是utf8,不須要設置,是爲存儲系統元數據的字符集

修改mysql字符集的方法:

mysql> SET collation_connection = utf8_general_ci ;   

mysql> SET collation_database = utf8_general_ci;

mysql> SET collation_server = utf8_general_ci ;

 0二、mysql客戶端請求字符集流轉過程

一個完整的用戶請求的字符集轉換流程是

   1) mysql Server收到請求時將請求數據從character_set_client轉換爲character_set_connection

   2) 進行內部操做前將請求數據從character_set_connection轉換爲內部操做字符集,步驟以下

        A. 使用每一個數據字段的CHARACTER SET設定值;

        B. 若上述值不存在,則使用對應數據表的字符集設定值

        C. 若上述值不存在,則使用對應數據庫的字符集設定值;

        D. 若上述值不存在,則使用character_set_server設定值。

   3) 最後將操做結果從內部操做字符集轉換爲character_set_results

 附上mysql5.6.x的my.cnf配置

[client]
default-character-set=utf8

[mysql]
auto-rehash
default-character-set=utf8

[mysqld]
user=mysql
innodb_buffer_pool_size = 256M
join_buffer_size = 128M
sort_buffer_size = 20M
read_rnd_buffer_size = 64M

lower_case_table_names=1

max_allowed_packet=500M
wait_timeout=200000
interactive_timeout=200000

datadir=/servyou_domain/mysql/data
socket=/var/lib/mysql/mysql.sock

init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

symbolic-links=0
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

log_bin_trust_function_creators=1

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/servyou_domain/mysql/data/mysqld.pid
相關文章
相關標籤/搜索