实战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数据库操作面向对象的优点
Oct 09 PHP
用PHP实现文件上传二法
Oct 09 PHP
图书管理程序(一)
Oct 09 PHP
php入门学习知识点三 PHP上传
Jul 14 PHP
PHP内置过滤器FILTER使用实例
Jun 25 PHP
php判断当前用户已在别处登录的方法
Jan 06 PHP
Linux系统下PHP-FPM的安装和配置教程
Aug 17 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
Mar 31 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
Sep 19 PHP
PHP XML和数组互相转换详解
Oct 26 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
May 26 PHP
PHP registerXPathNamespace()函数讲解
Feb 03 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
mysqli_set_charset和SET NAMES使用抉择及优劣分析
2013/01/13 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
php is_executable判断给定文件名是否可执行实例
2016/09/26 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
mac os快速切换多个PHP版本的方法
2017/03/07 PHP
laravel 5.3中自定义加密服务的方案详解
2017/05/09 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
Javascript的匿名函数小结
2009/12/31 Javascript
基于jQuery的弹出框插件
2012/03/18 Javascript
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
2012/05/14 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
浅谈javascript的分号的使用
2015/05/12 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
javascript将list转换成树状结构的实例
2017/09/08 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
vue.js,ajax渲染页面的实例
2018/02/11 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
2018/09/28 Javascript
element el-input directive数字进行控制
2018/10/11 Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
2019/11/05 Javascript
python登录QQ邮箱发信的实现代码
2013/02/10 Python
python k-近邻算法实例分享
2014/06/11 Python
python3实现zabbix告警推送钉钉的示例
2019/02/20 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
Python any()函数的使用方法
2019/10/28 Python
董事长岗位职责
2013/11/30 职场文书
军训自我鉴定范文
2014/02/13 职场文书
活动总结范文
2014/08/30 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
单位病假条范文
2015/08/17 职场文书
2016年元旦寄语
2015/08/17 职场文书
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang