当前位置:  数据库>mysql

Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]

    来源: 互联网  发布时间:2014-10-08

    本文导语:  一、导出数据。 先说明一下自己的环境:Mac OS X 10.8.3, MySQL Community Server 5.6.10, MySQL Workbench 5.2.47。 我想把本机数据库内的数据迁移到另一台机器上,于是使用Workbench中自带的import/export功能,其实就是调用mysqldump。不幸的是,出...

一、导出数据。

先说明一下自己的环境:Mac OS X 10.8.3, MySQL Community Server 5.6.10, MySQL Workbench 5.2.47。

我想把本机数据库内的数据迁移到另一台机器上,于是使用Workbench中自带的import/export功能,其实就是调用mysqldump。不幸的是,出现了版本不一致的错误。

错误没治了,最终找到解决方案,可以指定mysql的mysqldump,路径为:/usr/local/mysql/bin/mysqldump,这样是把数据导出为sql语句的insert语句。

由于需要是把数据导出为excel,所以通过mysql控制台使用select语句把数据导出到excel文件中。

下面先介绍怎么导出为excel文件,然后介绍怎么导出为insert语句。

1、通过终端操作。

1 cd /usr/local/mysql/bin/

2、到达bin目录后,可以ls -l命令看看当前目录有哪些程序可以用,这里先用mysql,命令格式为:

mysql -h主机IP -u用户名 -p密码

如:

1 ./mysql -hlocalhost -uroot -p123456

注意前面加的"./"。

这时就进入mysql命令控制台,终端上显示为:

3、然后通过show databases命令查看当前的所有数据库,使用use命令选择进入某个数据库,注意每个命令都要以英文分号“;”结束。

4、使用sql语句导出需要的数据,sql语句不限于单个表的查询。由于我的数据库编码是utf8格式,而office默认的编码则是gb2312,所以当某个字段中包含中文时,导出到excel后,中文内容是会乱码的,此时需要convert转换编码,具体使用方式:

我试着把文件保存到桌面,但始终提示没有权限,应该是和用户有关吧,无视了。当使用“./”这个路径保存时,实际是保存到了/usr/local/mysql/data下面。打开看看,哟西,不乱码了。

5、下面是把数据导出为sql的insert语句。

使用mysqldump命令,可以指定是单个表还是整个数据库导出。

打开终端,定位到/usr/local/mysql/bin,使用这个目录下的mysqldump。

导出单个表:

命令格式为:

mysqldump -u用户名 -p密码 -h主机地址 数据库名 表名 > 导出文件存储路径

例如:

/usr/local/mysql/bin/mysqldump -uroot -p123456 -hlocalhost -t --extended-insert=false --default-character-set=utf8 SpiderBBSDB Catalog > /Users/ethan/Desktop/Catalog.sql

其中用到了几个参数,简单说明一下:

-t:等同于--no-create-info,只导出数据,而不添加CREATE TABLE 语句。默认导出的文件中也有create table语句。

--extended-insert:使用具有多个VALUES列的INSERT语法,也就是传说中一次插入多条数据的INSERT句式。这样使导出文件更小,并加速导入时的速度,但是有可能sql语句会有长度限制,所以我并不推荐此种方式,比如我某个表中有500W条数据,难保能用一条insert语句可以执行完毕。此选项默认为打开状态,把他置为false,就是一条数据一个insert语句了。

--default-character-set:设置默认字符集,由于我的数据库和表均是设定为utf8编码格式,当不设置此选项时,导出的中文是乱码,奇怪的是官方说明中,说这个选项的默认值是utf8,表示不解。

导出整个数据库:

/usr/local/mysql/bin/mysqldump -uroot -p123456 -hlocalhost -t --extended-insert=false --default-character-set=utf8 SpiderBBSDB > /Users/ethan/Desktop/SpiderBBSDB.sql

二、导入数据。

有导出就有导入。上面第5步导出的sql文件,可以直接在mysql workbench中执行,也可以使用mysqldump导入,这里说明一下如何使用mysqldump导入:

/usr/local/mysql/bin/mysqldump -uroot -p123456 -hlocalhost --default-character-set=utf8 SpiderBBSDB < /Users/ethan/Desktop/Catalog.sql

三、关于java连接mysql写入中文乱码。

关于这个中文乱码问题,着实折腾了我好久好久。一开始就百度谷歌bing,网上大多复制粘贴的答案,在这里记录一下自己的情况,希望同路人不再走弯路。

其实我的修改很简单,把数据库的编码改为utf-8,在新建表时,把表的默认编码也改为utf-8,就可以了。就这么个小小的改动,让我足足折腾了一个通宵,表示有解决问题强迫症,问题不解决真的睡不着,唉~~~

四、总结。

似乎很多领导做报告都喜欢加个总结,说上一堆废话,虽然回回都听不懂,但感觉很厉害的样子。于是我也加一个总结:中文乱码真特么折腾人,这些年跟你斗争了好多回了,好了,总结完毕。


    
 
 

您可能感兴趣的文章:

  • jsp中文乱码 jsp mysql 乱码的解决方法
  • mysql数据库乱码之保存越南文乱码解决方法
  • Apache 1.3.22/Tomcat 4.0.4/Mysql 3.23/mm.mysql.jdbc-2.0pre5的中文乱码问题
  • windows环境下Mysql中文乱码问题解决方法
  • mysql query browser中文乱码的解决方法
  • linux下mysql乱码及javascript无效
  • cmd中MySQL中文数据乱码问题解决方法
  • DOS命令行窗口mysql中文显示乱码问题解决方法
  • java通过stock与mysql通信时出现乱码的问题
  • 解决php csv文件导入mysql中文乱码
  • mysql的乱码和赋权问题?
  • linu as4.0 下 mysql数据库插入时乱码问题!!!求高人解决!!!
  • mysql使用source 命令乱码问题解决方法
  • 解析mysql修改为utf8后仍然有乱码的问题
  • php连接mysql二种方法 mysql乱码问题
  • 解析MYSQL 数据库导入SQL 文件出现乱码的问题
  • mysql和phpmyadmin的乱码问题
  • mysql odbc字符集设置(中文显示乱码)
  • Linux下访问MYSQL数据库中数据时出现乱码问题
  • 解析Hibernate + MySQL中文乱码问题
  • mysql 命令大全及导入导出表结构或数据
  • java开源软件 iis7站长之家
  • Mysql导出数据的正确方法
  • mysql 导入导出数据库以及函数、存储过程的介绍
  • 如何用workbench导出mysql数据库关系图
  • mysql 导入导出数据库、数据表的方法
  • mysql导出导入中文表解决方法
  • mysql下完整导出导入实现方法
  • PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
  • Mysql 导入导出csv 中文乱码问题的解决方法
  • mysql数据库导出xml的实现方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • mysql中文排序注意事项与实现方法
  • mysql 按中文字段排序
  • apache+tomcat3.2.3+mm.mysql+mysql3.22+jdk1.3.1中文问题,急!!!!分不够还可以再加..
  • mysql 不能插入中文问题
  • 让MySQL支持中文排序的实现方法
  • mysql 客户端不能输入中文?
  • 解决mysql不能插入中文Incorrect string value
  • mysql的中文问题
  • 我在安装LINUX 9简体中文版时,漏装了一个PHP-MYSQL的模块,那我现在该如何加装?
  • JBuilder中用MYSQL数据库,用中文进行条件查询时,查不出任和数据?
  • 解决mysql5中文乱码问题的方法
  • jsp+mysql的中文显示问题
  • php读取mysql中文乱码解决方法
  • Mysql 插入中文及中文查询 (修改+调试)
  • 烦人:用Java操纵mySQL数据库时的中文字符处理。
  • Mysql在debian系统中不能插入中文的终极解决方案
  • Mysql插入中文变为全问号???的问题 解决方法
  • 求教! if(rs.getString("name")!="中文") //MySql+连接池, 这种写法有什么不对?
  • php mysql表中文乱码问题如何解决
  • 解决MySQL数据库中文模糊检索问题的方法
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
  • Mysql查询错误:ERROR:no query specified原因
  • MySQL 重装MySQL后, mysql服务无法启动
  • php安装完成后如何添加mysql扩展
  • 为什么用linux安装盘安装了mysql后,启动mysql,提示找不到mysql.sock文件?
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • 請教,在redhat linux7.2+mysql 中,系統提示mysql已啟動,網頁卻不能訪問mysql?
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 求解释: useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
  • MySQL Workbench的下载安装与使用教程


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3