字符集和 mysql 資料庫的備份和匯入

2021-07-25 15:06:54 字數 2229 閱讀 5165

binary,varbinary,blob

聲音、影象、等二進位制資料與字符集無關(影象儲存為二進位制檔案,不然存放為非二進位制就把二進位制轉換為相應的字符集(亂碼)破壞了原資料)

char varchar text

字符集(utf8 gbk gb2312 big5)

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

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

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

MySQL字符集備份

字符集介紹 字元 character 是各種文字和符號的總稱,包括各國家文字 標點符號 圖形符號 數字等。字符集 character set 是多個字元的集合,字符集種類較多,每個字符集包含的字元個數不同,常見字符集名稱 ascii字符集 gb2312字符集 big5字符集 gb18030字符集 u...

修改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都...