实战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 相关文章推荐
PHP MemCached高级缓存配置图文教程
Aug 05 PHP
php获取一个变量的名字的方法
Sep 05 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
Nov 06 PHP
彻底删除thinkphp3.1案例blog标签的方法
Dec 05 PHP
PHP内核探索:哈希表碰撞攻击原理
Jul 31 PHP
php微信公众平台开发(一) 配置接口
Dec 06 PHP
php简单处理XML数据的方法示例
May 19 PHP
PHP实现一个多功能购物网站的案例
Sep 13 PHP
PHP实现验证码校验功能
Nov 16 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
Mar 08 PHP
Laravel中10个有用的用法小结
May 06 PHP
php计数排序算法的实现代码(附四个实例代码)
Mar 31 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处理整数函数的详解
2013/06/09 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
JQuery模板插件 jquery.tmpl 动态ajax扩展
2011/11/10 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
javascript中使用正则表达式清理table样式的代码
2020/04/01 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
2015/09/19 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
微信小程序实现验证码获取倒计时效果
2018/02/08 Javascript
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
vue 实现微信浮标效果
2019/09/01 Javascript
Python Sleep休眠函数使用简单实例
2015/02/02 Python
python 字典(dict)按键和值排序
2016/06/28 Python
python 实现视频流下载保存MP4的方法
2019/01/09 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2014/07/21 面试题
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
庆七一活动方案
2014/01/25 职场文书
政府门卫岗位职责
2014/04/29 职场文书
国际贸易毕业生自荐书
2014/06/22 职场文书
垃圾桶标语
2014/06/24 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
村官个人总结范文
2015/03/03 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
目标责任书格式范文
2015/05/11 职场文书
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers