日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据库的字符集_mysql数据库中字符集乱码问题原因及解决

發布時間:2025/3/12 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库的字符集_mysql数据库中字符集乱码问题原因及解决 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

有的時候我們在查看數據庫數據時,會看到亂碼。實際上,無論何種數據庫只要出現亂碼問題,這大多是由于數據庫字符集設定的問題。

下面我們就介紹一下,數據庫的字符集的設定及亂碼問題的解決。

mysql數據庫的字符集

直白的說,字符就像是單個的文字,編碼就像是給每個文字的編號,字符集就像是字符與編碼的集合,校驗規則就是字符集的對應的排序規則,字符集加上對應的校驗規則就是語言。(每種字符集可以有多種校對規則,但都有一個默認的校對規則)

mysql數據庫可以通過設定字符集,來使用對應的字符集和檢驗規則來組織字符。就像是解讀一片文章的時候用那種語言來解析。例如:中國人常使用的utf8編碼,代表的是中文。

mysql可以支持多種字符集。在同一個數據庫的不同表,同一個表中的不同字段,都可以指定使用不同的字符集。

mysql的字符集規則

mysql可以設定的字符集:

服務器的字符集

數據庫的字符集

表的字符集字

段的字符集

如果在某一個級別沒有設置字符集,則它會繼承其上一級的字符集。

mysql數據庫亂碼問題解決方法(即修改字符集方法)

【1】查看mysql支持的字符集

show character set;

【2】查看數據庫編碼

show variables like 'character_set%';

【3】查看當前mysql使用的字符集

show variables like 'character%';

解析:

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

character_set_connection:客戶機與服務器連接的字符集

character_set_database:默認數據庫的字符集;如果沒有默認數據庫,就會使用 character_set_server指定的字符集(建議不要隨意更改)

character_set_filesystem:把 character_set_client轉換character_set_filesystem (默認為binary, 不做任何轉換)

character_set_results:返回給客戶端的字符集

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

character_set_system:系統字符集,默認utf8。(用于數據庫的表、列和存儲在目錄表中函數的名字)

character_sets_dir:mysql字符集文件的保存路徑

產生亂碼的原因

character_set_client與實際不符合

character_set_results與客戶端頁面不符合

【4】查看當前數據庫的校對規則

show variables like 'collation%';

解析:

value的命名規則: 字符集名字+語言+后綴

collation_connection :當前連接的字符集

collation_database :當前日期的默認校對

collation_server :服務器的默認校對

后綴的含義:

ci:不區分大小寫

cs:區分大小寫

bin:二進制排序

【5】更改字符集

解決亂碼問題(一般如下)

<1>臨時(只在當前生效,退出后重新進入恢復原來設置)

set character_set_client = 'utf8';

set character_set_connection = 'utf8';

set character_set_results = 'utf8';

set names utf8;

<2>永久(修改完配置文件,需重啟mysql)

在mysql的my.cnf的配置文件中修改或添加下列:

[client]

default-character-set = utf8

[mysqld]

character_set_server = utf8

[mysql]

default-character-set = utf8

備注

<1>

關于mysqld下面的參數,使用mysql5.5驗證后,下方的寫法都可,并非下劃線原因導致的修改不成功:

character_set_server = utf8

character-set-server = utf8

<2>

關于配置文件的修改,有時候由于是編譯安裝,因此mysql的配置文件,不一定是/etc/my.cnf,因此修改后也不會成功。

<3>

修改完配置文件,并重啟mysql后。請查看一下,是否字符集和校對規則如下:

如下即為成功,如果是使用Navicat等第3方工具連接,中文仍有亂碼,修改一下工具的編碼試試

到此這篇關于mysql數據庫中字符集亂碼問題原因及解決的文章就介紹到這了,更多相關mysql數據庫字符集亂碼問內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

總結

以上是生活随笔為你收集整理的mysql数据库的字符集_mysql数据库中字符集乱码问题原因及解决的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。