天天看點

5.中文問題(自身,作業系統級别,應用軟體的本身),mysql資料庫備份



第一層因素:

mysql的自身的設定

mysql有六處使用了字元集,分别為:client

、connection、database、results、server

、system。

mysql>show variables like 'character%';

+--------------------------+----------------------------+

| variable_name           

| value                      |

| character_set_client    

| utf8                       |

| character_set_connection | utf8                      

|

| character_set_database  

| character_set_filesystem | binary                    

| character_set_results   

| character_set_server    

| latin1                     |

| character_set_system    

| character_sets_dir      

| /usr/share/mysql/charsets/ |

mysql -uroot -p--default_character_set=gbk; (影響資料的輸入和輸出)

mysql> show variables like 'character%';

| variable_name        

   | value                     

| gbk                        |

| character_set_connection | gbk                       

| utf8                       |

8 rows in set (0.00 sec)

insertinto worker(id,name,sex,birthday,salary,entry_date,resume) values(3,'趙六',0,'1985-09-21',7000,'2012-08-24','一個小小牛');

====>錯誤現象      

mysql>insert into worker(id,name,sex,birthday,salary,entry_date,resume) values(3,'趙六',0,'1985-09-21',7000,'2012-08-24','一個小小牛');

error 1366 (hy000): incorrect string value:'\x80\xe4\xb8\xaa\xe5\xb0...' for column 'resume' at row 1

mysql>

====>結論:

讓你的用戶端

伺服器

連接配接 ,都必須設定成一樣 utf8gbk

第二層因素

作業系統語言環境的設定

a)作業系統的總體的語言環境

[mysql01@localhost~]$ cat /etc/sysconfig/i18n

lang="zh_cn.utf-8"

[mysql01@localhost~]$

b)目前使用者的語言環境 

linux的作業系統是基于多使用者的作業系統

[mysql01@localhost~]$ env | grep lang*

lang=zh_cn.utf-8

=====>目前使用者的lang設定能屏蔽作業系統語言環境設定                                      

實作:修改目前使用者的語言環境

[mysql01@localhost~]$ env | grep lang

lang=c

[mysql01@localhost~]$                                    

insertinto worker(id,name,sex,birthday,salary,entry_date,resume) values(3,'趙六六',0,'1985-09-21',7000,'2012-08-24','一個小牛');                 

第三層因素

你的應用軟體的本身

檔案的

存儲問題....

檔案存儲

最常用有2種方式:utf8 

code936 

====  gbk轉寬位元組的函數....widewinskd函數 

gbk轉成寬位元組(unicode2)

備份mysql資料庫

$ mysqldump -uroot -p mydb2 > 

2.sql

//恢複msql資料庫

$ mysqldump -uroot -p mydb2 < 2.sql