实战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 远程文件管理,可以给表格排序,遍历目录,时间排序
Aug 07 PHP
php.ini中date.timezone设置分析
Jul 29 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
Jul 22 PHP
PHP+FastCGI+Nginx配置PHP运行环境
Aug 07 PHP
PHP+MySQL删除操作实例
Jan 21 PHP
php程序内部post数据的方法
Mar 31 PHP
PHP+JS三级菜单联动菜单实现方法
Feb 24 PHP
PHP二维数组去重算法
Dec 17 PHP
yii2安装详细流程
May 23 PHP
PHP的mysqli_ssl_set()函数讲解
Jan 23 PHP
RSA实现JS前端加密与PHP后端解密功能示例
Aug 05 PHP
基于laravel belongsTo使用详解
Oct 18 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
用文本作数据处理
2006/10/09 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
php类自动加载器实现方法
2015/07/28 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
yii插入数据库防并发的简单代码
2017/05/27 PHP
用Javascript读取中文COOKIE的解决办法
2007/02/15 Javascript
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
2013/04/21 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
jquery live()调用不存在的解决方法
2014/02/26 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
js获取form的方法
2015/05/06 Javascript
jquery合并表格中相同文本的相邻单元格
2015/07/17 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
Gulp实现静态网页模块化的方法详解
2018/01/09 Javascript
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
2020/10/28 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
python获取本机外网ip的方法
2015/04/15 Python
Python 实现子类获取父类的类成员方法
2019/01/11 Python
用Python去除图像的黑色或白色背景实例
2019/12/12 Python
俄罗斯卫浴采暖及维修用品超级市场:Dkrussia
2020/05/12 全球购物
环境工程大学生个人的自我评价
2013/10/08 职场文书
土木工程师岗位职责
2013/11/24 职场文书
计算机网络专业推荐信
2013/11/24 职场文书
高中打架检讨书
2014/02/13 职场文书
纪检监察建议书
2014/05/19 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书