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>

====>结论:
让你的client
server
连接 ,都必须设置成一样 utf8gbk

第二层因素

操作系统语言环境的设置

a)操作系统的整体的语言环境

[[email protected]~]$ cat /etc/sysconfig/i18n

LANG="zh_CN.UTF-8"

[[email protected]~]$

b)当前用户的语言环境 
linux的操作系统是基于多用户的操作系统

[[email protected]~]$ env | grep LANG*

LANG=zh_CN.UTF-8

[[email protected]~]$

=====>当前用户的LANG设置能屏蔽操作系统语言环境设置

实现:改动当前用户的语言环境

[[email protected]~]$ env | grep LANG

LANG=C

[[email protected]~]$

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

时间: 2025-01-04 08:33:51

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

老李分享:性能调优之操作系统级别的负载分析

老李分享:性能调优之操作系统级别的负载分析 负载大致分为两类a.cpu负载b.i/o负载 如某一个应用需要执行大规模计算,虽然程序和磁盘没有数据i/o,但是完成处理也需要花费很长的时间,主要是因为该程序要依赖cpu的计算,这样就造成了cup的负载压力,这种应用系统被称为计算密集型应用 如某一个需要从磁盘上的大量数据中搜索出目标数据的程序,这种程序不依赖cpu,而是依靠磁盘的读取速度,也就是依赖输入/输出.磁盘的转速速度越快,搜索的用时越短,这种主要是依靠i/o的速度反应性能的程序,我们叫做i/o

mysql数据库的中文乱码问题的解决

今天终于解决了数据库中文乱码的问题,分享出来让更多的人作为参考,我们进入主题: 如果在搭建mysql数据库的时候没有设置它的编码格式,在以后的开发中,中文乱码会是一个令人头疼的问题,所以我在这里分享一种彻底解决乱码的方法: 我是在ubuntu云服务器环境下进行的设置,Windows操作系统下操作更加简单,这里就不赘述,方法类似,大家自己可以查阅资料. 首先在命令行下输入: #cd /etc/mysql 进入目录后,然后修改my.cnf配置文件(mysql版本在5.5以上,现在基本都是这个以上)

mysql数据库解决中文乱码问题

安装mysql之后,如果存储中文,再读出的时候就会出现乱码问题.现在的字符集有几百种之多,都是一些公司或者组织定义的.我们应该使用能够容纳世界全部语言全部字符的字符集,这样就不会再出现乱码问题.这就是现在通用的UTF-8.要理解编码就应该区分字符集和编码格式是说的同一问题的两个方面. 导致乱码的原因是存储和读取时采用的是不同的字符集. 推荐在建库之前修改编码格式: 一.进入mysql(mysql -uroot -p),查看当前数据库字符集(status;) 二.#vim /etc/mysql/m

Windows使用MySQL数据库中文乱码问题

声明:本文关于MySQL中文乱码问题的解决方案均基于Windows 10操作系统,如果是Linux系统会有较多不适用之处,请谨慎参考. 一.MySQL中文乱码情况 1. sqlDevelpor MySQL客户端中文乱码 sqlDevelopor操作MySQL中文乱码 2. command-line MySQL客户端中文乱码 控制台操作MySQL中文乱码 二.MySQL中文乱码产生原因 Windwos中文系统默认的字符编码集是gbk(扩展国标码,包括简体中文.繁体中文.朝鲜语.日本语等东亚语言),

PHP+mysql数据库开发类似百度的搜索功能:中英文分词+全文检索(MySQL全文检索+中文分词(SCWS))

PHP+mysql数据库开发类似百度的搜索功能:中英文分词+全文检索 中文分词: a)   robbe PHP中文分词扩展: http://www.boyunjian.com/v/softd/robbe.html i.  Robbe完整版本下载:Robbe完整版本(PHP测试程序, 开发帮助文档, WinNT下php各版本的dll文件)下载: http://code.google.com/p/robbe(“谷歌”无法使用) b) SCWS(简易中文分词) 基于HTTP/POST的分词 : htt

DB 查询分析器 6.03 ,遨游于任何Windows操作系统之上的最优秀的数据库客户端工具

DB 查询分析器 6.03 ,遨游于任何Windows操作系统之上的最优秀的数据库客户端工具 中国本土程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员  http://www.csdn.net/article/2014-08-09/2821124 )推出的个人作品----万能数据库查询分析器,中文版本<DB 查询分析器>.英文版本<DB Query Analyzer>.它具有强大的功能.友好的操作界面.良好的操作性.跨越各种数据库平台乃至于EXCEL和文本文

mysql数据库my.ini配置文件中文详解

mysql数据库my.ini配置文件中文详解 mysqld程序–目录和文件 basedir = path 使用给定目录作为根目录(安装目录). character-sets-dir = path 给出存放着字符集的目录. datadir = path 从给定目录读取数据库文件. pid-file = filename 为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统); Init-V脚本需要使用这个文件里的进程ID结束mysqld进程. socket = filen

Linux环境下MySQL数据库用SQL语句插入中文显示 “问号或者乱码 ” 问题解决!

问题: 在普通用户权限下执行 mysql -u root -p进入mysql数据库,中间步骤省略,插入数据:insert into 库名(属性)values('汉字'); 会出现如下提示:  Query OK, 1 row affected, 1 warning (0.00 sec)    表明出现错误,没有插入成功,然后执行select * from 表名   就会出现如下的问题:显示的表中出现乱码或者问号. 如图: 解决方案: 首先重新打开一个终端窗口(方便操作),进入root用户模式 执行

mybatis连接mysql数据库插入中文乱码

对于mysql数据库的乱码问题,有两中情况: 1. mysql数据库编码问题(建库时设定). 2. 连接mysql数据库的url编码设置问题. 对于第一个问题,目前个人发现只能通过重新建库解决,建库的时候,选择UTF-8字符集.我试过修改现有数据库字符集为UFT -8,但是根本不起作用,插入的中文仍然乱码(中文显示成:???).重建库时选择字符集为UTF-8之后,中文正常显示了. 对于第二个问题,是这样 的情况:我建库时设置了数据库默认字符集为UTF-8,通过mysql workbench直接插