实战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 检查扩展库或函数是否可用的代码
Apr 06 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
Dec 29 PHP
PHP取整数函数常用的四种方法小结
Jul 05 PHP
apache配置虚拟主机的方法详解
Jun 17 PHP
php保存二进制原始数据为图片的程序代码
Oct 14 PHP
PHP使用xmllint命令处理xml与html的方法
Dec 15 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
Mar 16 PHP
php实现的debug log日志操作类实例
Jul 12 PHP
php获取ip及网址的简单方法(必看)
Apr 01 PHP
PHP程序员学习使用Swoole的理由
Jun 24 PHP
Laravel解决nesting level错误和隐藏index.php的问题
Oct 12 PHP
PHP Web表单生成器案例分析
Jun 02 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静态新闻列表自动生成代码
2007/06/14 PHP
php重定向的三种方法分享
2012/02/22 PHP
php获取url参数方法总结
2014/11/13 PHP
ThinkPHP中RBAC类的四种用法分析
2014/11/24 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
2016/12/14 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
Add Formatted Text to a Word Document
2007/06/15 Javascript
JavaScript 继承详解(三)
2009/07/13 Javascript
JS替换字符串中空格方法
2015/04/17 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
JS基于构造函数实现的菜单滑动显隐效果【测试可用】
2016/06/21 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
2016/11/21 Javascript
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
vuex实现购物车的增加减少移除
2020/06/28 Javascript
JavaScript点击按钮生成4位随机验证码
2021/01/28 Javascript
Python中用Spark模块的使用教程
2015/04/13 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
Keras 快速解决OOM超内存的问题
2020/06/11 Python
matplotlib基础绘图命令之bar的使用方法
2020/08/13 Python
Python Pandas数据分析工具用法实例
2020/11/05 Python
HTML5 对各个标签的定义与规定:body的介绍
2012/06/21 HTML / CSS
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
客房主管岗位职责
2013/12/09 职场文书
材料采购员岗位职责
2013/12/17 职场文书
医生党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
求职自我评价怎么写
2015/03/09 职场文书
mysql的MVCC多版本并发控制的实现
2021/04/14 MySQL