亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mysql數(shù)據(jù)庫(kù)中字符集亂碼問(wèn)題原因及解決

 更新時(shí)間:2020年08月04日 15:30:55   作者:漠效  
這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)中字符集亂碼問(wèn)題原因及解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

有的時(shí)候我們?cè)诓榭磾?shù)據(jù)庫(kù)數(shù)據(jù)時(shí),會(huì)看到亂碼。實(shí)際上,無(wú)論何種數(shù)據(jù)庫(kù)只要出現(xiàn)亂碼問(wèn)題,這大多是由于數(shù)據(jù)庫(kù)字符集設(shè)定的問(wèn)題。

下面我們就介紹一下,數(shù)據(jù)庫(kù)的字符集的設(shè)定及亂碼問(wèn)題的解決。

mysql數(shù)據(jù)庫(kù)的字符集

直白的說(shuō),字符就像是單個(gè)的文字,編碼就像是給每個(gè)文字的編號(hào),字符集就像是字符與編碼的集合,校驗(yàn)規(guī)則就是字符集的對(duì)應(yīng)的排序規(guī)則,字符集加上對(duì)應(yīng)的校驗(yàn)規(guī)則就是語(yǔ)言。(每種字符集可以有多種校對(duì)規(guī)則,但都有一個(gè)默認(rèn)的校對(duì)規(guī)則)

mysql數(shù)據(jù)庫(kù)可以通過(guò)設(shè)定字符集,來(lái)使用對(duì)應(yīng)的字符集和檢驗(yàn)規(guī)則來(lái)組織字符。就像是解讀一片文章的時(shí)候用那種語(yǔ)言來(lái)解析。例如:中國(guó)人常使用的utf8編碼,代表的是中文。

mysql可以支持多種字符集。在同一個(gè)數(shù)據(jù)庫(kù)的不同表,同一個(gè)表中的不同字段,都可以指定使用不同的字符集。

mysql的字符集規(guī)則

mysql可以設(shè)定的字符集:

  1. 服務(wù)器的字符集
  2. 數(shù)據(jù)庫(kù)的字符集
  3. 表的字符集字
  4. 段的字符集

如果在某一個(gè)級(jí)別沒(méi)有設(shè)置字符集,則它會(huì)繼承其上一級(jí)的字符集。

mysql數(shù)據(jù)庫(kù)亂碼問(wèn)題解決方法(即修改字符集方法)

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

show character set;

這里寫圖片描述

【2】查看數(shù)據(jù)庫(kù)編碼

show variables like 'character_set%';

這里寫圖片描述

【3】查看當(dāng)前mysql使用的字符集

show variables like 'character%';

這里寫圖片描述

解析:

character_set_client:客戶端請(qǐng)求數(shù)據(jù)的字符集

character_set_connection:客戶機(jī)與服務(wù)器連接的字符集

character_set_database:默認(rèn)數(shù)據(jù)庫(kù)的字符集;如果沒(méi)有默認(rèn)數(shù)據(jù)庫(kù),就會(huì)使用 character_set_server指定的字符集(建議不要隨意更改)

character_set_filesystem:把 character_set_client轉(zhuǎn)換character_set_filesystem (默認(rèn)為binary, 不做任何轉(zhuǎn)換)

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

character_set_server:數(shù)據(jù)庫(kù)服務(wù)器的默認(rèn)字符集

character_set_system:系統(tǒng)字符集,默認(rèn)utf8。(用于數(shù)據(jù)庫(kù)的表、列和存儲(chǔ)在目錄表中函數(shù)的名字)

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

產(chǎn)生亂碼的原因

character_set_client與實(shí)際不符合
character_set_results與客戶端頁(yè)面不符合

【4】查看當(dāng)前數(shù)據(jù)庫(kù)的校對(duì)規(guī)則

show variables like 'collation%';

這里寫圖片描述

解析:

value的命名規(guī)則: 字符集名字+語(yǔ)言+后綴

collation_connection :當(dāng)前連接的字符集

collation_database :當(dāng)前日期的默認(rèn)校對(duì)

collation_server :服務(wù)器的默認(rèn)校對(duì)

后綴的含義:
ci:不區(qū)分大小寫
cs:區(qū)分大小寫
bin:二進(jìn)制排序

【5】更改字符集

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

<1>臨時(shí)(只在當(dāng)前生效,退出后重新進(jìn)入恢復(fù)原來(lái)設(shè)置)

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>
關(guān)于mysqld下面的參數(shù),使用mysql5.5驗(yàn)證后,下方的寫法都可,并非下劃線原因?qū)е碌男薷牟怀晒Γ?/p>

character_set_server = utf8
character-set-server = utf8

<2>
關(guān)于配置文件的修改,有時(shí)候由于是編譯安裝,因此mysql的配置文件,不一定是/etc/my.cnf,因此修改后也不會(huì)成功。

<3>
修改完配置文件,并重啟mysql后。請(qǐng)查看一下,是否字符集和校對(duì)規(guī)則如下:

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

在這里插入圖片描述

在這里插入圖片描述

到此這篇關(guān)于mysql數(shù)據(jù)庫(kù)中字符集亂碼問(wèn)題原因及解決的文章就介紹到這了,更多相關(guān)mysql數(shù)據(jù)庫(kù)字符集亂碼問(wèn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql高效分頁(yè)詳解

    Mysql高效分頁(yè)詳解

    這篇文章主要為大家詳細(xì)介紹了Mysql高效分頁(yè)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • MySQL定時(shí)器EVENT學(xué)習(xí)筆記

    MySQL定時(shí)器EVENT學(xué)習(xí)筆記

    本文為大家介紹下MySQL定時(shí)器EVENT,要使定時(shí)起作用 MySQL的常量GLOBAL event_scheduler必須為on或者是1,感興趣的朋友可以了解下
    2013-11-11
  • 檢查MySQL中的列是否為空或Null的常用方法

    檢查MySQL中的列是否為空或Null的常用方法

    在MySQL數(shù)據(jù)庫(kù)中,我們經(jīng)常需要檢查某個(gè)列是否為空或Null,空值表示該列沒(méi)有被賦值,而Null表示該列的值是未知的或不存在的,在本文中,我們將討論如何在MySQL中檢查列是否為空或Null,并探討不同的方法和案例,需要的朋友可以參考下
    2023-11-11
  • MySQL 可擴(kuò)展設(shè)計(jì)的基本原則

    MySQL 可擴(kuò)展設(shè)計(jì)的基本原則

    可擴(kuò)展設(shè)計(jì)是一個(gè)非常復(fù)雜的系統(tǒng)工程,所涉及的各個(gè)方面非常的廣泛,技術(shù)也較為復(fù)雜,可能還會(huì)帶來(lái)很多其他方面的問(wèn)題。但不管我們?nèi)绾卧O(shè)計(jì),不管遇到哪些問(wèn)題,有些原則我們還是必須確保的。
    2021-05-05
  • MySQL獲取行號(hào)的示例代碼

    MySQL獲取行號(hào)的示例代碼

    MySQL變量是一種用于存儲(chǔ)和操縱數(shù)據(jù)的數(shù)據(jù)類型,通過(guò)在SQL查詢中使用變量,我們可以創(chuàng)建一個(gè)MySQL查詢,用于獲取每行數(shù)據(jù)的行號(hào),這篇文章主要介紹了MySQL 如何獲取行號(hào),需要的朋友可以參考下
    2023-08-08
  • mysql timestamp比較查詢遇到的坑及解決

    mysql timestamp比較查詢遇到的坑及解決

    這篇文章主要介紹了mysql timestamp比較查詢遇到的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • MySQL時(shí)區(qū)差8小時(shí)的多種問(wèn)題解決方法

    MySQL時(shí)區(qū)差8小時(shí)的多種問(wèn)題解決方法

    mybatis將本地的數(shù)據(jù)傳入到mysql數(shù)據(jù)庫(kù)服務(wù)器的時(shí)候,服務(wù)器會(huì)對(duì)數(shù)據(jù)進(jìn)行檢測(cè),會(huì)把date類型的數(shù)據(jù)自動(dòng)轉(zhuǎn)換為mysql服務(wù)器所對(duì)應(yīng)的時(shí)區(qū),即0時(shí)區(qū),所以會(huì)相差8小時(shí),本文給大家介紹了MySQL時(shí)區(qū)差8小時(shí)的問(wèn)題解決方法,需要的朋友可以參考下
    2024-01-01
  • 在Docker中使用MySQL的教程

    在Docker中使用MySQL的教程

    這篇文章主要介紹了在Docker中使用MySQL的教程,介紹了簡(jiǎn)單的內(nèi)部搭建步驟,需要的朋友可以參考下
    2015-04-04
  • 調(diào)用MySQL中數(shù)據(jù)庫(kù)元數(shù)據(jù)的方法

    調(diào)用MySQL中數(shù)據(jù)庫(kù)元數(shù)據(jù)的方法

    這篇文章主要介紹了調(diào)用MySQL中數(shù)據(jù)庫(kù)元數(shù)據(jù)的方法,文中給出了了PHP和Perl腳本下的調(diào)用示例,需要的朋友可以參考下
    2015-05-05
  • MySQL 5.7.20綠色版安裝詳細(xì)圖文教程

    MySQL 5.7.20綠色版安裝詳細(xì)圖文教程

    MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB公司開(kāi)發(fā),目前屬于Oracle旗下產(chǎn)品。這篇文章主要介紹了MySQL 5.7.20綠色版安裝詳細(xì)圖文教程,需要的朋友可以參考下
    2017-11-11

最新評(píng)論