MySQL--字符集參數
阿新 • • 發佈:2019-03-03
charsets ive 客戶 char 讀取 data ati ESS sta
==================================================
MySQL字符集相關參數
character_set_client: 表示客戶端請求數據的字符集 character_set_connection:表示客戶端連接到數據庫後傳輸使用的字符集 character_set_database:默認數據庫的字符集,如果創建數據庫時沒有指定字符集,則使用該默認字符集 character_set_filesystem:在操作系統層次上存放文件使用的字符集,默認為二進制 character_set_results:結果集使用的字符集 character_set_server:服務器使用的默認字符集 character_set_system:為存儲系統元數據信息使用的字符集,總是utf8
==================================================
MySQL字符集參數使用
在客戶端與MYSQL服務器建立連接後,執行INSERT操作並返回新插入: 1>MYSQL Client使用character_set_client指定的字符集來編碼請求數據並發送給MYSQL服務器; 2>MYSQL服務器接收到客戶端發送來的請求數據,將數據按照character_set_connection指定的字符集進行解碼; 3>MYSQL服務器執行插入請求,將步驟2中解碼的數據根據對應的列的字符集進行編碼,然後插入數據,寫入到文件中; 4>MYSQL服務器執行查詢請求,將數據從文件中讀取出來,按照對應列的字符集進行解碼; 5>MYSQL服務器將查詢結果按照character_set_results進行編碼,返回給MYSQL Client; 為避免數據庫亂碼問題,應該保證客戶端編碼/服務器character_set_client和對於表上字段的charset使用相同的編碼方式。
==================================================
影響到字符編碼的設置
數據庫級別的字符集信息使用db.opt來存放字符集和校驗字符集的信息,當該數據庫下定義表時未定義字符集,將使用數據庫的字符集。
Session settings -->character_set_server -->character_set_client -->character_set_connection -->character_set_database -->character_set_result Schema level defaults Table level defaults Column charsets
==================================================
SET NAMES命令
SET NAMES {‘charset_name‘ [COLLATE ‘collation_name‘] | DEFAULT}
This statement sets the three session system variables character_set_client, character_set_connection, and character_set_results to the given character set. Setting character_set_connection to charset_name also sets collation_connection to the default collation for charset_name.
SET NAMES x相當於執行下面三條語句:
SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;
If you are using the mysql client with auto-reconnect enabled (which is not recommended), it is preferable to use the charset command rather than SET NAMES.
The charset command issues a SET NAMES statement, and also changes the default character set that is used if mysql reconnects after the connection has dropped.
MySQL--字符集參數