首页 数据库 mysql教程 Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]_MySQL

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

Jun 01, 2016 pm 01:24 PM
e export import sql语句 数据库

bitsCN.com

一、导出数据。

先说明一下自己的环境: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/<p></p> <p>2、到达bin目录后,可以ls -l命令看看当前目录有哪些程序可以用,这里先用mysql,命令格式为:</p> <p>mysql -h主机IP -u用户名 -p密码</p> <p>如:</p> <p></p><pre class="brush:php;toolbar:false">1 ./mysql -hlocalhost -uroot -p123456<p></p> <p>注意前面加的"./"。</p> <p>这时就进入mysql命令控制台,终端上显示为:</p> <p><img src="/static/imghw/default1.png" data-src="http://img.bitscn.com/upimg/allimg/c140719/1405L112406250-52419.jpg" class="lazy" alt=""></p> <p>3、然后通过show databases命令查看当前的所有数据库,使用use命令选择进入某个数据库,<strong>注意每个命令都要以英文分号“;”结束。</strong></p> <p><strong><img src="/static/imghw/default1.png" data-src="http://img.bitscn.com/upimg/allimg/c140719/1405L11244DP-B4Z.jpg" class="lazy" alt=""></strong></p> <p>4、使用sql语句导出需要的数据,sql语句不限于单个表的查询。由于我的数据库编码是utf8格式,而office默认的编码则是gb2312,所以当某个字段中包含中文时,导出到excel后,中文内容是会乱码的,此时需要convert转换编码,具体使用方式:</p> <p><img src="/static/imghw/default1.png" data-src="http://img.bitscn.com/upimg/allimg/c140719/1405L112493K0-L115.jpg" class="lazy" alt=""></p> <p>我试着把文件保存到桌面,但始终提示没有权限,应该是和用户有关吧,无视了。当使用“./”这个路径保存时,实际是保存到了/usr/local/mysql/data下面。打开看看,哟西,不乱码了。</p> <p>5、下面是把数据导出为sql的insert语句。</p> <p>使用mysqldump命令,可以指定是单个表还是整个数据库导出。</p> <p>打开终端,定位到/usr/local/mysql/bin,使用这个目录下的mysqldump。</p> <p><strong>导出单个表:</strong></p> <p>命令格式为:</p> <p class="p1">mysqldump -u用户名 -p密码 -h主机地址 数据库名 表名 > 导出文件存储路径</p> <p class="p1">例如:</p> <p></p><pre class="brush:php;toolbar:false">/usr/local/mysql/bin/mysqldump -uroot -p123456 -hlocalhost -t --extended-insert=false --default-character-set=utf8 SpiderBBSDB Catalog > /Users/ethan/Desktop/Catalog.sql<p></p> <p>其中用到了几个参数,简单说明一下:</p> <p><strong>-t:</strong>等同于--no-create-info,只导出数据,而不添加CREATE TABLE 语句。默认导出的文件中也有create table语句。</p> <p><strong>--extended-insert:</strong>使用具有多个VALUES列的INSERT语法,也就是传说中一次插入多条数据的INSERT句式。这样使导出文件更小,并加速导入时的速度,但是有可能sql语句会有长度限制,所以我并不推荐此种方式,比如我某个表中有500W条数据,难保能用一条insert语句可以执行完毕。此选项默认为打开状态,把他置为false,就是一条数据一个insert语句了。</p> <p><strong>--default-character-set:</strong>设置默认字符集,由于我的数据库和表均是设定为utf8编码格式,当不设置此选项时,导出的中文是乱码,奇怪的是官方说明中,说这个选项的默认值是utf8,表示不解。</p> <p><strong>导出整个数据库:</strong></p> <p></p><pre class="brush:php;toolbar:false">/usr/local/mysql/bin/mysqldump -uroot -p123456 -hlocalhost -t --extended-insert=false --default-character-set=utf8 SpiderBBSDB > /Users/ethan/Desktop/SpiderBBSDB.sql<p></p> <p>二、导入数据。 </p> <p>有导出就有导入。上面第5步导出的sql文件,可以直接在mysql workbench中执行,也可以使用mysqldump导入,这里说明一下如何使用mysqldump导入:</p> /usr/local/mysql/bin/mysqldump -uroot -p123456 -hlocalhost --default-character-set=utf8 SpiderBBSDB 三、关于java连接mysql写入中文乱码。  <p>关于这个中文乱码问题,着实折腾了我好久好久。一开始就百度谷歌bing,网上大多复制粘贴的答案,在这里记录一下自己的情况,希望同路人不再走弯路。</p> <p>其实我的修改很简单,把数据库的编码改为utf-8,在新建表时,把表的默认编码也改为utf-8,就可以了。就这么个小小的改动,让我足足折腾了一个通宵,表示有解决问题强迫症,问题不解决真的睡不着,唉~~~</p> <p><img src="/static/imghw/default1.png" data-src="http://img.bitscn.com/upimg/allimg/c140719/1405L112535940-WL9.jpg" class="lazy" alt=""></p> <p><img src="/static/imghw/default1.png" data-src="http://img.bitscn.com/upimg/allimg/c140719/1405L1125F310-92S6.jpg" class="lazy" alt=""></p> <p><img src="/static/imghw/default1.png" data-src="http://img.bitscn.com/upimg/allimg/c140719/1405L11261250-105O0.jpg" class="lazy" alt=""></p> <p><strong>四、总结。 </strong></p> <p>似乎很多领导做报告都喜欢加个总结,说上一堆废话,虽然回回都听不懂,但感觉很厉害的样子。于是我也加一个总结:中文乱码真特么折腾人,这些年跟你斗争了好多回了,好了,总结完毕。</p>
登录后复制
bitsCN.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

navicat怎么导出查询出来的数据 navicat怎么导出查询出来的数据 Apr 24, 2024 am 04:15 AM

在 Navicat 中导出查询结果:执行查询。右键单击查询结果并选择“导出数据”。根据需要选择导出格式:CSV:字段分隔符为逗号。Excel:包括表头,使用 Excel 格式。SQL 脚本:包含用于重新创建查询结果的 SQL 语句。选择导出选项(如编码、换行符)。选择导出位置和文件名。单击“导出”以开始导出。

Hibernate 如何实现多态映射? Hibernate 如何实现多态映射? Apr 17, 2024 pm 12:09 PM

Hibernate多态映射可映射继承类到数据库,提供以下映射类型:joined-subclass:为子类创建单独表,包含父类所有列。table-per-class:为子类创建单独表,仅包含子类特有列。union-subclass:类似joined-subclass,但父类表联合所有子类列。

iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 iOS 18 新增'已恢复”相册功能 可找回丢失或损坏的照片 Jul 18, 2024 am 05:48 AM

苹果公司最新发布的iOS18、iPadOS18以及macOSSequoia系统为Photos应用增添了一项重要功能,旨在帮助用户轻松恢复因各种原因丢失或损坏的照片和视频。这项新功能在Photos应用的"工具"部分引入了一个名为"已恢复"的相册,当用户设备中存在未纳入其照片库的图片或视频时,该相册将自动显示。"已恢复"相册的出现为因数据库损坏、相机应用未正确保存至照片库或第三方应用管理照片库时照片和视频丢失提供了解决方案。用户只需简单几步

在PHP中使用MySQLi建立数据库连接的详尽教程 在PHP中使用MySQLi建立数据库连接的详尽教程 Jun 04, 2024 pm 01:42 PM

如何在PHP中使用MySQLi建立数据库连接:包含MySQLi扩展(require_once)创建连接函数(functionconnect_to_db)调用连接函数($conn=connect_to_db())执行查询($result=$conn->query())关闭连接($conn->close())

如何在PHP中处理数据库连接错误 如何在PHP中处理数据库连接错误 Jun 05, 2024 pm 02:16 PM

PHP中处理数据库连接报错,可以使用以下步骤:使用mysqli_connect_errno()获取错误代码。使用mysqli_connect_error()获取错误消息。通过捕获并记录这些错误信息,可以轻松识别并解决数据库连接问题,确保应用程序的顺畅运行。

oracle中explain的用法 oracle中explain的用法 May 03, 2024 am 12:06 AM

Oracle中的EXPLAIN命令用于分析SQL语句的执行计划,使用方法为在SQL语句前添加EXPLAIN关键字。EXPLAIN结果包含ID、操作符类型、行数估计、成本估计、输出行数估计、访问谓词和过滤谓词等信息,可用于优化查询性能,标识高代价运算符和可能受益于优化技术的表。

mysql中自增怎么写 mysql中自增怎么写 Apr 27, 2024 am 01:54 AM

MySQL中的自增是一种自动生成唯一数字序列的机制,常用于主键和唯一索引字段。设置自增需在创建表时指定AUTO_INCREMENT属性,例如:CREATE TABLE my_table (id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL)。自增的优点包括:简化主键生成、提高插入性能和确保唯一性。但启用了自增的字段不能再设置其他值,在插入前无法预知自增值,手动指定自增字段的值可能会与自动生成的序列冲突,删除或更新自增字段值可能会影

Go WebSocket 如何与数据库集成? Go WebSocket 如何与数据库集成? Jun 05, 2024 pm 03:18 PM

如何将GoWebSocket与数据库集成:设置数据库连接:使用database/sql包连接到数据库。将WebSocket消息存储到数据库:使用INSERT语句将消息插入数据库。从数据库检索WebSocket消息:使用SELECT语句检索数据库中的消息。

See all articles