实战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 相关文章推荐
PHP4实际应用经验篇(4)
Oct 09 PHP
php checkdate、getdate等日期时间函数操作详解
Mar 11 PHP
PHP 根据IP地址控制访问的代码
Apr 22 PHP
php引用传值实例详解学习
Nov 06 PHP
CodeIgniter框架中_remap()使用方法2例
Mar 10 PHP
PHP图片裁剪函数(保持图像不变形)
May 04 PHP
php中文繁体和简体相互转换的方法
Mar 21 PHP
php实现数组按指定KEY排序的方法
Mar 30 PHP
php获取网站百度快照日期的方法
Jul 29 PHP
php简单读取.vcf格式文件的方法示例
Sep 02 PHP
Laravel+Intervention实现上传图片功能示例
Jul 09 PHP
Laravel数据库读写分离配置的方法
Oct 13 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
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
2007/04/18 PHP
CodeIgniter模板引擎使用实例
2014/07/15 PHP
YII使用url组件美化管理的方法
2015/12/28 PHP
PHP利用imagick生成组合缩略图
2016/02/19 PHP
利用php的ob缓存机制实现页面静态化方法
2017/07/09 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
JavaScript中出现乱码的处理心得
2009/12/24 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
Nginx上传文件全部缓存解决方案
2015/08/17 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
AngularJS基础 ng-model-options 指令简单示例
2016/08/02 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
p5.js入门教程之键盘交互
2018/03/19 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
2019/04/22 Javascript
js轮播图之旋转木马效果
2020/10/13 Javascript
vue3.0实现点击切换验证码(组件)及校验
2020/11/18 Vue.js
JS实现鼠标移动拖尾
2020/12/27 Javascript
[01:50]《我与DAC》之玩家:iG夺冠时的那面红旗
2018/03/29 DOTA
python基于queue和threading实现多线程下载实例
2014/10/08 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
用pycharm开发django项目示例代码
2018/10/24 Python
Python使用统计函数绘制简单图形实例代码
2019/05/15 Python
Python生成指定数量的优惠码实操内容
2019/06/18 Python
ML神器:sklearn的快速使用及入门
2019/07/11 Python
Python class的继承方法代码实例
2020/02/14 Python
利用Python实现朋友圈中的九宫格图片效果
2020/09/03 Python
幼儿园教师奖惩制度
2014/02/01 职场文书
公司股东合作协议书
2014/09/14 职场文书
正风肃纪查摆剖析材料
2014/10/10 职场文书
指导教师推荐意见
2015/06/05 职场文书
2015年教务处干事工作总结
2015/07/22 职场文书
python数据分析之用sklearn预测糖尿病
2021/04/22 Python
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python