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  
| utf8                       |

| character_set_filesystem | binary                    
|

| character_set_results   
| utf8                       |

| character_set_server    
| latin1                     |

| character_set_system    
| utf8                       |

| character_sets_dir      
| /usr/share/mysql/charsets/ |

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

 

        

        

mysql -uroot -p--default_character_set=gbk; (影响数据的输入和输出)

        

mysql> show variables like 'character%';

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

| Variable_name        
   | Value                     
|

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

| character_set_client    
| gbk                        |

| character_set_connection | gbk                       
|

| character_set_database  
| utf8                       |

| character_set_filesystem | binary                    
|

| character_set_results   
| gbk                        |

| character_set_server    
| latin1                     |

| character_set_system    
| utf8                       |

| character_sets_dir      
| /usr/share/mysql/charsets/ |

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

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

                                                                
[mysql01@localhost~]$

                                                                

                                              
=====>当前用户的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

时间: 2024-10-28 20:35:20

5.中文问题(自身,操作系统级别,应用软件的本身),mysql数据库备份的相关文章

MFC连接MySQL数据库时编辑框出现中文乱码

环境:Visual Studio 2010 + MySQL Server 5.1 + Navicat for Mysql 8.2 问题:MFC连接MySQL 数据库,编辑框出现中文乱码. 解决: 使用MySQL C API,在连接上数据库查询数据前加上 如下代码: mysql_query(&m_sqlCon,"SET NAMES 'GB2312'"); //m_sqlCon是MYSQL类型 查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www

实例讲解MySQL数据库中文问题的解决方法

MySQL数据库中文问题的解决方法: 1.my.ini MySQL配置文件设置 [client] default-character-set=gbk [mysqld] default-character-set=gbk 2.启动MySQL服务创建你的数据库 3.验证当前编码 命令行输入: mysql -u root -p 登录你建立的数据库 >connect yourdatabasename 输入数据库状态命令 >status 假如结果如下: Server characterset: gbk

y 中文乱码-PHP环语言对MySQL数据库进行中文字段的数据插入和查询时候遇到的乱码问题

问题描述 PHP环语言对MySQL数据库进行中文字段的数据插入和查询时候遇到的乱码问题 #定义插入数据库的时候定义插入的字符串的编码为 mysql_query('SET NAMES UTF8'); 这时候通过PhpMyadmin能够正常看到插入的正文字段信息,但是通过 mysql_query("select * from $table_name limit $offset,$rows"); 查询该字段的时候,显示的字段信息是乱码 如果不对插入数据库的编码做任何的定义,直接插入数据库中文

【技术贴】java插入mysql中文乱码解决|java插入mysql数据库显示问号?

[技术贴]java插入mysql中文乱码解决|java插入mysql数据库显示问号?   在你要连接到mysql 的代码里写上?useUnicode=true&characterEncoding=UTF-8" 比如 "jdbc:mysql://localhost:3306/chenluancl1?useUnicode=true&characterEncoding=UTF-8", "root","密码"

通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: &amp;#39;\xF0...

原文:[原创]通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 'incorrect string value: '\xF0... 这篇blog重点在解决问题,如果你对字符编码并不是特别了解,建议先看看 < [原创]通俗易懂地解决中文乱码问题(1) --- 跨平台乱码 >. 当然,如果只是针对解决这个Mysql插入报错问题,本篇足够了.   一.定位错误   定位错误绝对是至关重要的一环.我建议遇到问题耐心分析一下比较好,毕竟"不是所有的牛奶都叫特仑苏

编码格式-mysql数据库插入中文 老是出错

问题描述 mysql数据库插入中文 老是出错 如图 已经在配置文件中改了编码格式 但是还是插不了中文啊 解决方案 大概缺少了GB2312 再增加GB2312配置 解决方案二: 修改成utf-8试试 解决方案三: 你创建的数据库的编码格式统一了吗?最好统一成utf-8. 解决方案四: 其实 你可以使用客户端试试,sqlyog 或者 navicat 解决方案五: 通常 使字库确实或字符编码设置不当造成的. 解决方案六: 建议UTF-8... 解决方案七: 你使用 show create table

mysql-我的MYSQL数据库总是中文乱码

问题描述 我的MYSQL数据库总是中文乱码 _我的MYSQL数据库总是中文乱码,我已经把编码调为utf8了 解决方案 你安装MySQL的时候是不是选择的utf-8哟 解决方案二: 是程序写入乱码?请问数据的来源~ 解决方案三: 如果是表内存储字段内容乱码,那就是输入的代码编码与数据库中的编码不一致:如果是读取数据库时显示乱码,那就设定输出的编码. 解决方案四: 应该是程序和数据库直接操作引起的,比如JDBC连接时设置为utf-8试试 解决方案五: 我也遇到过你这种问题,试了N种方法都不行,最后没

php插入到mysql数据库中文乱码,数据库中的中文可以正常显示

问题描述 php插入到mysql数据库中文乱码,数据库中的中文可以正常显示 php网页中文数据插入到mysql数据库乱码,数据库中的中文数据可以在网页上正常显示. php文件开头有header("Content-Type: text/html; charset=utf-8"); 使用PHP MySQL UPDATE之前有 mysql_query("set names 'utf8'",$conn); php文件以utf-8格式编码,phpmyadmin中数据库和数据表

编码-php插入到mysql数据库中文乱码,数据库中的中文可以正常显示

问题描述 php插入到mysql数据库中文乱码,数据库中的中文可以正常显示 PHP获取HTML的POST内容到数据库,插入以后显示乱码,我数据库编码已经设置成UTF8了,然后插入之前我ECHO出来也不是乱码,但是到数据库里面就成乱码了,不知道为什么呢,问之前我已经搜索过了,说要先执行 mysql_query("SET NAMES 'uft8'",$link); 这样,我这样执行以后然后刷新还是一样 解决方案 http://www.111cn.net/phper/31/59059.htm