实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法


Posted in PHP onJune 11, 2010

一直不用这个phpmyadmin,在本机也是用navicat,总感觉phpmyadmin速度较慢。这回不行了,没有独立主机,只好用人家给的phpmyadmin了。

第一步:本地数据导出sql文件。心想这对于navicat小事一桩。直接在数据库上右键“转储sql”(如图1),哗哗,十几秒的时间导出成功。

实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法

图1:navicat下对整个数据库转sql

用记事本打开一看,傻眼了。中文全是乱码。咋回事呢?搜索了一下,改变什么连接属性啥的。不管用。试着在单张表上,转储sql,嘿,中文正常。但是82个表,我一个个转储我不累死。不行。看来只能弃用我心爱的navicat了。想起有个mysqldump,好试试它。运行-C:\Documents and Settings\Administrator>mysqldump -uroot -p123  ttg>ttgbk2.sql。打开一看,还是乱码。还不行。唉。。搜索,改成下面的加上指定字符集

C:\Documents and Settings\Administrator>mysqldump -uroot -p123 --default-character-set=gbk ttg>ttgbk2.sql。打开看看。嘿可以了。

 

第二步:打开虚拟主机提供的phpmyadmin.导入选择文件ttgbk2.sql.点执行。那个速度,唉。。。一会儿报错了。在执行lock tables tablename write 时出现access denied错误,原来我是虚拟主机用户没有 lock tables的权限.打开sql一看还真有lock tables 选项。没权限那就不用这个。到网上一搜说加上--skip-lock-tables,心想不错,应该是这个“跳过锁表”嘛

在mysqldump时加上-skip-lock-tables选项,那么命令行就变成
C:\Documents and Settings\Administrator>mysqldump -uroot -p123 --default-character-set=gbk --skip-lock-tables ttg>ttgbk3.sql.
结果令人失望,还是有lock tables.
后来看了一下mysqldump --help
才明白--skip-lock-tables是用在备份时候不让读写。但是如果你不想让导出的带lock-tables(因为你导入的时候没有权限嘛,呵呵)应该是使用add-locks=false,这是2个概念。正确的如下
C:\Documents and Settings\Administrator>mysqldump -uroot -p123 --default-character-set=gbk ttg --add-locks=false>ttgttg3.sql.

我的版本导出的在记事本中打开是asni格式的。

再次到phpmyadmin处导入。结果是导入了3个表后报错。mysql语句报错。一看中文还乱码。。。。。接近崩溃。

再找原因。把“MySQL 连接校对”改成gbk-chinese-ci,把language改成中文-chinese simplified(如图2)。再把导入时“文件编码”改成“gbk”(默认的是utf-8,当然对应的sql文件的编码用记事本打开就是ansi.)(如图三).再试。。。。

 

 

实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法

图二:修改连接校对及language

 

实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法

(图三:修改文件的字符集为gbk)

 

终于所有表导入成功。打开一个含有中文的表,字段显示正常。

2点体会:

1、数据库编码归数据库编码。保证连接校对与数据库编码一致即可。

2、sql文件编码归文件编码。保证导入时选择的文件编码与数据库所用编码一致最好。

这是2个编码问题。

服了你了mysql.从知道你有这个编码问题到到现在,你还是这个样子。这个问题还是让很多人困惑。啥时候像sqlserver那样国际化就好了。

PHP 相关文章推荐
杏林同学录(三)
Oct 09 PHP
php中文本操作的类
Mar 17 PHP
简单的PHP图片上传程序
Mar 27 PHP
php中explode与split的区别介绍
Oct 03 PHP
php检测文件编码的方法示例
Apr 25 PHP
php简单操作mysql数据库的类
Apr 16 PHP
PHP中preg_match函数正则匹配的字符串长度问题
May 27 PHP
php多重接口的实现方法
Jun 20 PHP
php技术实现加载字体并保存成图片
Jul 27 PHP
php获取图片信息的方法详解
Dec 10 PHP
php文件上传后端处理小技巧
May 22 PHP
yii2使用gridView实现下拉列表筛选数据
Apr 10 PHP
Php获取金书网的书名的实现代码
Jun 11 #PHP
PHP中json_encode、json_decode与serialize、unserialize的性能测试分析
Jun 09 #PHP
php网站来路获取代码(针对搜索引擎)
Jun 08 #PHP
php数组对百万数据进行排除重复数据的实现代码
Jun 08 #PHP
腾讯QQ php程序员面试题目整理
Jun 08 #PHP
php 上传文件类型判断函数(避免上传漏洞 )
Jun 08 #PHP
php的字符串用法小结
Jun 08 #PHP
You might like
PHP脚本数据库功能详解(下)
2006/10/09 PHP
php之curl设置超时实例
2014/11/03 PHP
java解析json方法总结
2019/05/16 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
2020/08/11 PHP
JavaScript与DropDownList 区别分析
2010/01/01 Javascript
javascript 简单抽屉效果的实现代码
2010/03/09 Javascript
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
AngularJS 中的Promise --- $q服务详解
2016/09/14 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
浅谈react 同构之样式直出
2017/11/07 Javascript
vue中实现methods一个方法调用另外一个方法
2018/02/08 Javascript
Vue中用props给data赋初始值遇到的问题解决
2018/11/27 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
JS实现根据数组对象的某一属性排序操作示例
2019/01/14 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
2019/10/30 Javascript
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
原生js实现五子棋游戏
2020/05/28 Javascript
Vue实现附件上传功能
2020/05/28 Javascript
[01:32:50]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第一场 1月25日
2021/03/11 DOTA
Python 返回汉字的汉语拼音
2009/02/27 Python
python处理json数据中的中文
2014/03/06 Python
Python continue语句用法实例
2014/03/11 Python
使用Python3制作TCP端口扫描器
2017/04/17 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
python中可以声明变量类型吗
2020/06/18 Python
捷克街头、运动和滑板一站式商店:BoardStar.cz
2019/10/06 全球购物
shell的种类有哪些
2015/04/15 面试题
幼师专业毕业生自荐信
2013/09/29 职场文书
工程负责人任命书
2014/06/06 职场文书
公司董事长助理工作职责
2014/07/12 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
付款证明模板
2015/06/19 职场文书
2015年初中教务处工作总结
2015/07/21 职场文书
SONY AN-LP1 短波有源天线放大器
2021/04/22 无线电
如何用threejs实现实时多边形折射
2021/05/07 Javascript