实战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 相关文章推荐
main.php
Dec 09 PHP
PHP 强制性文件下载功能的函数代码(任意文件格式)
May 26 PHP
php将fileterms函数返回的结果变成可读的形式
Apr 21 PHP
实用PHP会员权限控制实现原理分析
May 29 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
Oct 16 PHP
通过curl模拟post和get方式提交的表单类
Apr 23 PHP
PHP stream_context_create()函数的使用示例
May 12 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
Oct 31 PHP
PHP实现微信退款功能
Oct 02 PHP
PHP whois查询类定义与用法示例
Apr 03 PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 PHP
php array_chunk()函数用法与注意事项
Jul 12 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实现文件下载代码分享
2014/08/19 PHP
CI框架简单邮件发送类实例
2016/05/18 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
Thinkphp5.0框架视图view的循环标签用法示例
2019/10/12 PHP
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
JavaScript中去掉数组中的重复值的实现方法
2011/08/03 Javascript
基于KMP算法JavaScript的实现方法分析
2013/05/03 Javascript
JQuery下拉框应用示例介绍
2014/04/23 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
2014/12/28 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
js中利用cookie实现记住密码功能
2020/08/20 Javascript
微信小程序  Mustache语法详细介绍
2016/10/27 Javascript
走进AngularJs之过滤器(filter)详解
2017/02/17 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
序列化模块json代码实例详解
2020/03/03 Javascript
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
Python中断言Assertion的一些改进方案
2016/10/27 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
Python3实战之爬虫抓取网易云音乐的热门评论
2017/10/09 Python
有关Python的22个编程技巧
2018/08/29 Python
python绘制动态曲线教程
2020/02/24 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
2020/06/15 Python
python学习笔记之多进程
2020/08/06 Python
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
口腔医学技术应届生求职信
2013/11/09 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
教师工作能力自我评价
2015/03/04 职场文书
大学生暑假实习总结
2015/07/13 职场文书
三八妇女节致辞
2015/07/31 职场文书
js 实现Material UI点击涟漪效果示例
2022/09/23 Javascript