最近在做项目的工程中,由于系统中需要提供数据库备份的功能,经过网上一番搜索,觉得采用简单的mysqldump

(1)java代码

String backupSQL = "cmd /c mysqldump -urootdd --extended-insert=false  -hlocalhost fts> "
+ DB_BACKUPFILE_PATH + " ";
Runtime runtime = Runtime.getRuntime();
System.out.println(runtime.exec(backupSQL));

通过执行上面的代码段的出来的文件中,中文部分都已乱码出现,起初怀疑是数据库的编码有关,于是通过以下方式来查询数据库的编码

(2) >show variables like 'character%';

经过以上步骤可以确定数据库的编码是没有问题的,经过再次网上搜索 得到如下结论

"如果MySQL服务器上的字符集是 latin1 或者其他的的,mysqldump 出来的中文都是乱码!一个简单的办法是加上默认字符集选项,如:

mysqldump [-h 127.0.0.1 -P 3307 ] -u username --default-character-set=gbk -p databasename > dumpfile.txt,

--default-character-set 知道数据内容是中文时可以指定为 gbk,这样即使数据库本身设置字符集为 latin1 出来的文件中文也能正常!", 最后将代码改成如下形式

(3)最终java 代码

String backupSQL = "cmd /c mysqldump -urootdd --default-character-set=gbk --opt --extended-insert=false  -hlocalhost fts> "
+ DB_BACKUPFILE_PATH + " ";
Runtime runtime = Runtime.getRuntime();
System.out.println(runtime.exec(backupSQL));

经过以上修改,终于搞定,导出的文件中的中文时正常显示的

使用mysqldump 对数据库进行备份的乱码问题的更多相关文章

  1. mysqldump工具实现mysql数据库的备份还原

    简介 冷.温.热备份 冷备:读写操作均不可进行 温备:读操作可执行:但写操作不可执行 热备:读写操作均可执行 MyISAM:温备,不支持热备 InnoDB:都支持 不管是热备还原还是冷备还原,还原时都 ...

  2. mysqldump常用于MySQL数据库逻辑备份

    mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump ...

  3. 使用mysql自带工具mysqldump进行全库备份以及source命令恢复数据库

    mysql数据库提供了一个很好用的工具mysqldump用以备份数据库,下面将使用mysqldump命令进行备份所有数据库以及指定数据库 一.mysqldump一次性备份所有数据库数据 /usr/lo ...

  4. CentOS下使用crontab+mysqldump实现定时自动备份数据库

    一 : 为什么要进行数据库的备份? 最主要的原因:尽可能地减少损失,包括时间上.精神上和金钱上的损失.很多人都不注意备份数据,以致在发生问题后丢失大量的重要数据.要知道,在地球上网是很危险的,即使做好 ...

  5. mysqldump进行数据库的全备时,备份数据库的顺序是什么,就是先备份哪个库,然后再备份哪个库

    需求描述: 今天在用mysqldump工具进行数据库的备份的时候,突然想了一个问题,比如我有10个库要进行备份 那么是先备份哪个,然后再备份哪个呢,所以,做了实验,验证下. 操作过程: 1.使用--a ...

  6. mysqldump如何针对某些数据库进行备份?针对某个数据库进行备份?

    需求描述: 通过mysqldump工具对mysql服务器中的某几个数据库进行备份. 或者就对其中的一个数据库进行备份. 操作过程: 1.通过--databases参数后面加上数据库的名字进行备份 [m ...

  7. 【MYSQL备份】利用mysqldump将一个数据库复制到另一个数据库

    假设要将服务器A上的数据库test备份到服务器B 1.在服务器B上新建数据库cp_test mysql> create database cp_test; Query OK, row affec ...

  8. 关于MySQL数据库的备份方案

    这里简单总结MySQL的备份分为3种:分为冷备份,逻辑备份,热备份. 1.冷备份: 一般主要用于非核心业务,这类业务一般都是允许业务中断的,冷备份的特点就是数度快,恢复时也最为简单.通常直接复物理文件 ...

  9. 使用mysqldump导出数据库(表)

    mysqldump用来备份数据库或在不同数据库之间迁移数据,mydqldump的备份内容包括用来创建表和装载表的SQL语句. 一.mysqldump使用方法 (1).备份单个数据库或数据库中的部分表, ...

随机推荐

  1. 提高mysql千万级数据SQL的查询优化30条总结

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  2. log4e插件的安装和使用

    1.首先下载log4e小工具.放入myeclipse10安装文件夹D:\Program Files (x86)\myEclipse10\MyEclipse Blue Edition 10\dropin ...

  3. Android学习笔记:Home Screen Widgets(1):大约Widget

    什么是Home Screen Widgets Home screen Widget即称为小工具或者中文小工具,是显示在主页上的views,通过后台进程更新view的数据. Android由AppWid ...

  4. mvc拦截器

    在ASP.NET MVC中,有三种拦截器:Action拦截器.Result拦截器和Exception拦截器.这里说的是第一种和第三种.其实所谓的ASP.NET MVC拦截器,也没什么神秘的,就是一个普 ...

  5. C语言缓冲区清空

    C语言中有几个基本输入函数: //获取字符系列 int fgetc(FILE *stream); int getc(FILE *stream); int getchar(void); //获取行系列 ...

  6. 使用hibernate在5秒内插入11万条数据,你觉得可能吗?

    需求是这样的,需要查询某几个表的数据,然后插入到另外一个表. 一看到需求,很多人都会用hibernate去把这些数据都查询出来,然后放到list中, 然后再用for循环之类的进行遍历,一条一条的取出数 ...

  7. 我的Android 4 学习系列之创建应用程序和Activity:Manifest、Application、Activity

    目录 介绍Android应用程序组件,以及使用这些组件构建的各种Android应用程序 Android应用程序的生命周期 如何创建应用程序Manifest 如何使用外部资源提供对位置.语言和硬件配置的 ...

  8. 【转】Android学习之AndroidManifest.xml清单之<uses-feature>

    无意之中看了几个小时的官方英文文档,关于<uses-feature>的介绍.有必要在这里记录一下,应该有很多人不知道<uses-feature>到底是做什么用的,因为我们平时根 ...

  9. DDD(领域驱动设计)理论结合实践

    DDD(领域驱动设计)理论结合实践   写在前面 插一句:本人超爱落网-<平凡的世界>这一期,分享给大家. 阅读目录: 关于DDD 前期分析 框架搭建 代码实现 开源-发布 后记 第一次听 ...

  10. [置顶] Ants(Northeastern Europe 2007)

                                                                                      Ants Time Limit: 5 ...