mysql資料庫字符集編碼的檢視與修改

2021-05-25 13:05:02 字數 1935 閱讀 6255

在搭建產品demo

的時候,開發者環境下往資料庫同步資料時正常,但是其他使用者用同樣程式及資料庫初始化指令碼搭建時,總是會出現入庫中文為亂碼的現象。這裡的原因很可能就是資料庫編碼的問題。

下面的內容將介紹如何檢視現在資料庫的編碼及如何修改:

1,檢視編碼:

命令:show variables like 'character_set_%'

結果,如:

2,修改已設定編碼:

如對character_set_database

修改編碼

命令:set character_set_database = utf8

執行後,檢視新編碼內容為:

可見已成功將編碼更換。

另外,有一種最簡單的方式,通過修改

mysql安裝目錄下的

my.ini

檔案,將檔案中

character_set_database = gbk 

修改為character_set_database = utf8

重啟mysql

服務即可。

因此,通過以上兩個步驟,便可檢視目前mysql

內的各種編碼格式,同時通過命令或修改配置檔案還可以很輕鬆實現編碼更換,用此來解決

mysql

資料庫入庫中文亂碼問題。

以下內容是從**獲取的關於

mysql字符集的問題,摘錄在此,供參考學習:

mysql的字符集支援

(character set support)

有兩個方面:

字符集(character set)

和排序方式

(collation)

。對於字符集的支援細化到四個層次:

伺服器(server)

,資料庫

(database)

,資料表

(table)

和連線(connection)

。mysql預設字符集

mysql對於字符集的指定可以細化到乙個資料庫,一張表,一列,應該用什麼字符集。

但是,傳統的程式在建立資料庫和資料表時並沒有使用那麼複雜的配置,它們用的是預設的配置,那麼,預設的配置從何而來呢?

(1)編譯

mysql 

時,指定了乙個預設的字符集,這個字符集是 

latin1

;(2)安裝

mysql 

時,可以在配置檔案 

(my.ini) 

中指定乙個預設的的字符集,如果沒指定,這個值繼承自編譯時指定的;

(3)啟動

mysqld 

時,可以在命令列引數中指定乙個預設的的字符集,如果沒指定,這個值繼承自配置檔案中的配置

,此時 

character_set_server 

被設定為這個預設的字符集;

(4)當建立乙個新的資料庫時,除非明確指定,這個資料庫的字符集被預設設定為

character_set_server

;(5)當選定了乙個資料庫時,

character_set_database 

被設定為這個資料庫預設的字符集;

(6)在這個資料庫裡建立一張表時,表預設的字符集被設定為 

character_set_database

,也就是這個資料庫預設的字符集;

(7)當在表內設定一欄時,除非明確指定,否則此欄預設的字符集就是表預設的字符集;

簡單的總結一下,如果什麼地方都不修改,那麼所有的資料庫的所有表的所有欄位的都用 latin1 

儲存,不過我們如果安裝 

mysql

,一般都會選擇多語言支援,也就是說,安裝程式會自動在配置檔案中把 

default_character_set 

設定為 

utf-8

,這保證了預設情況下,所有的資料庫的所有表的所有欄位的都用 

utf-8 

儲存。

修改mysql資料庫字符集編碼

1 修改新建資料庫預設字符集編碼 mysql5.5以上 mysqld 下新增 character set server utf8 collation server utf8 general ci 2 修改已存在資料庫字符集編碼 登入 mysql uroot p 選擇資料庫 use dbname 檢視...

oracle資料庫字符集編碼問題

1,查詢資料庫伺服器字符集,其 於props 是表示資料庫的字符集 select from nls database parameters 2,客戶端字符集環境select from nls instance parameter,其 於v parameter,表示客戶端的字符集的設定,可能是引數檔案...

mysql 字符集編碼 mysql的字元編碼

可以通過show variables like character 來輸出當前字元編碼情況 可得到如下結果 mysql show variables like character variable name value character set client gbk 注 客戶端編碼 想從win下的...