实战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中的串行化变量和序列化对象
Sep 05 PHP
php面向对象 字段的声明与使用
Jun 14 PHP
PHP中多维数组的foreach遍历示例
Jun 13 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
Sep 16 PHP
THINKPHP内容分页代码分享
Jan 14 PHP
php实现的IMEI限制的短信验证码发送类
May 05 PHP
PHP+AJAX实现投票功能的方法
Sep 28 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
Jul 03 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 PHP
PHP实现小程序批量通知推送
Nov 27 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 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
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
php目录管理函数小结
2008/09/10 PHP
收藏的PHP常用函数 推荐收藏保存
2010/02/21 PHP
PHP跨时区(UTC时间)应用解决方案
2013/01/11 PHP
PHP计算百度地图两个GPS坐标之间距离的方法
2015/01/09 PHP
PHP 中提示undefined index如何解决(多种方法)
2016/03/16 PHP
PHP手机号中间四位用星号*代替显示的实例
2017/06/02 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
PHP抽象类与接口的区别详解
2019/03/21 PHP
Avengerls vs Newbee BO3 第二场2.18
2021/03/10 DOTA
js实现表单检测及表单提示的方法
2015/08/14 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
2016/03/21 Javascript
深入理解JavaScript函数参数(推荐)
2016/07/26 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
vue中node_modules中第三方模块的修改使用详解
2019/05/31 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
详解Python中的Descriptor描述符类
2016/06/14 Python
基于python时间处理方法(详解)
2017/08/14 Python
解决python给列表里添加字典时被最后一个覆盖的问题
2019/01/21 Python
Python for循环与range函数的使用详解
2019/03/23 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
django实现用户注册实例讲解
2019/10/30 Python
Python如何使用ElementTree解析xml
2020/10/12 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
利用HTML5的新特点实现图片文件异步上传
2014/05/29 HTML / CSS
365 Tickets英国:全球景点门票
2019/07/06 全球购物
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
工程专业毕业生自荐信范文
2013/12/25 职场文书
科长竞争上岗演讲稿
2014/05/12 职场文书
Django分页器的用法你都了解吗
2021/05/26 Python
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
防止web项目中的SQL注入
2021/12/06 MySQL
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js