字符集和 mysql 數據庫的備份和導入

二進制

binary,varbinary,blob

聲音、圖像、等二進制數據與字符集無關(圖像存儲爲二進制文件,不然存放爲非二進制就把二進制轉換爲相應的字符集(亂碼)破壞了原數據)

非二進制

char varchar text

字符集(utf8 gbk gb2312 big5)

字符集的概念

gbk、gb2312、utf8(每個字符集存儲上萬個字)

一個漢字有2個字節,就等於8位,比如oxfe oxfa等於一個漢字,每個漢字在電腦都是這樣儲存

  • 簡體的新華字典 gb2312

  • 繁體字典 big5

  • 簡體繁體都有 gbk

  • gb2312 :6700多個漢字,2個字節

  • big5 :繁體字符集,13000多個漢字,大五碼=2字節

  • gbk :21000多個漢字,簡體和繁體 2個字節 //大部分操作系統都
    用gbk windows linux

  • utf8(萬國碼) :unicode 1-3個字節 a一個字節 盾3個字節

  • unicode(萬國碼) :國際標準化組織制定一套涵蓋世界所有語種、所有符號的編碼方案

在mysql 顯示出字符集

mysql> show character set;

mysql>create table cha (name1 varchar(30) character set utf8,name2 varchar(30) character set gbk);

mysql>show create table cha(表名);//查看錶的字段的字符集

mysql>insert into cha(name1,name2) values("噸","噸");

mysql>select length(name1),length(name2) from cha;  //讀取字節

mysql>select char_length(name1),char_length(name2) from cha ;

mysql>charact set utf8 collate utf8_bin  //設置字符集校對規則,有ci的都不區分大小寫的。 

binary(3)//表示存放3個字節的二進制數據
char(3) //存放3個字符

mysql>show variables like "%character%";  //字符集

character_set_client     | gbk           //客戶端的字符集
character_set_connection | gbk           //把客戶端的發送字符集轉換鏈接字符集,鏈接字符再轉化成字段的字符集
character_set_database   | latin1     //當前選中庫的字符集
character_set_filesystem | binary     //文件系統字符集
character_set_results    | gbk        //當服務器接收到信息,返回字符集給客戶
character_set_server     | latin1   //默認字符集,如果庫,表,字段都沒有設置字符集就默認使用這個
character_set_system     | utf8     //系統原數據的字符集,如表名,庫名
character_sets_dir       | E:\wamp\bin\mysql\mysql5.6.17\share\charsets\


mysql>show variables like "%collation%";  //校對規則

寬字節不要用set names (gbk);
因爲快字節的低四位很容易就剩生成一個/
php是以字符串導入的,如果多了一個/,那他和後面的/就轉義成一個/,
那麼就多了一個’就生成漏洞,可以輸入/* */註釋password來繞過驗證,
不用驗證就進入管理頁面,隨意修改用戶的信息。

解決此問題:
單獨設置以下三個,把客戶端字符集設置爲二進制,二進制不存在轉義字符,[set names(gbk)就是把一下三個都轉化成gbk]

character_set_connection
character_set_results 
character_set_client  

數據的備份:

(設置好環境變量)

mysqldump -uroot -p (數據庫名) > e:\blog.sql
mysqldump -uroot -p 數據庫名 表名> 導出的文件名	
mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名

導入數據庫

mysql>use 數據庫
然後使用source命令,後面參數爲腳本文件(如這裏用到的.sql)
mysql>source d:\wcnc_db.sql
發佈了35 篇原創文章 · 獲贊 7 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章