mysql資料庫各個字符集作用及更改方法

2021-09-29 11:38:06 字數 1684 閱讀 1797

我們在使用資料庫的時候,會遇到資料庫的亂碼問題。這篇文章就來闡述各個字符集的作用,已經更改字符集的方法。

如何檢視資料庫的字符集

下面就針對上面的字符集,來表示上面的字符集有什麼作用。

character_set_client:

客戶端**資料使用的字符集,就是使用者告訴伺服器,客戶端發過來的sql語句是用的什麼字符集,要和客戶端發出去的位元組流採用的編碼集一致。

character_set_connection:

這個字符集一般是character_set_client和character_set_connection保持一致,當進入查詢時,會將sql由character_set_client轉變character_set_connection字符集。

character_set_database:

新建資料庫的預設字符集,而資料庫的字符集又決定了新建表的預設字符集,而表的字符集又決定了字段的預設字符集,我們在建表的時候一般會指定字符集。如果不指定,就會用character_set_database去建表。

character_set_results:

獲取到資料的編碼格式,客戶端獲取到的結果就是以這種形式編碼的。

character_set_server:

伺服器的預設編碼。

character_set_system:

元資料的字符集。

character_set_system,character_set_dababase、character_set_server,都指標是在資料庫內部的儲存格式。

set names utf8
用這個可以臨時將字符集改為utf-8,這個等同於。如果之前資料儲存的utf-8格式,只是將返回資料臨時正常。這個時候就可以直接用set names utf8 就能將,傳輸過程的轉化改為utf8

set character_set_client = utf8;

set character_set_results = utf8;

set character_set_connection = utf8;

如果是character_set_database,character_set_server,character_set_system這個3個為非utf8,這個時候直接更改字符集已經無用了,需要更改字符集,再重新插入資料。如果要臨時更改,可以使用下面語句。

set character_set_database= utf8;

set character_set_server=utf8;

set character_set_system=utf8;

如果需要永久更改字符集編碼,可以找到my.ini將下面兩個引數更改為utf8

修改mysql資料庫字符集

首先修改預設建立資料庫字符集 c program files mysql mysql server 5.0資料夾下,找到my.ini檔案 default character set latin1 改為default character set 你想設定的字符集 之後重啟mysql,建立即可 如果想修...

mysql資料庫字符集問題

向mysql資料庫插入漢字的時候,說是data too long 檢視我設定的長度 是varchar 長度100,後來想想可能是字符集的問題,重新設定資料庫的字符集後就ok mysql create database database name character set gbk 或者是utf 8都...

mysql 資料庫字符集問題

ubuntu apt get install mysql server.這樣安裝之後,產生的字符集為 utf8 與 latin1的混合。其中,會使介面產生亂碼的變數 character set database 和 character set server 剛好這兩個都是latin1的。其他的是ut...