宝哥软件园

实战中mysql导出中文乱码 phpmyadmin导入中文乱码的解决方案

编辑:宝哥软件园 来源:互联网 时间:2021-10-22

我并不是一直用这个phpmyadmin,但是我在这台机器上也用navicat。总觉得phpmyadmin慢。这次不行,没有独立的主机,只好用别人给的phpmyadmin。步骤1:从本地数据导出sql文件。我以为这对纳威卡特来说是小菜一碟。右键单击数据库上的“转储sql”(如图1所示),花了十几秒钟才成功导出。

(图1:在1:navicat下将整个数据库转换为sql)当我用记事本打开它时,我目瞪口呆。中文充满了乱码。发生了什么事?搜索,更改什么连接属性什么的。没用的。尝试在一张纸上转储sql。嘿,中文很正常。但是82块手表,我一个一个甩掉。我没累着。不可能。看来我得抛弃我心爱的纳威卡特了。想一个mysqldump,试试吧。Run-c: 文档和设置 administrator MySQL dump-uroot-p 123 ttgtbgbk 2 . SQL.打开一看,还是乱码。还没有。唉。搜索,更改为以下内容并添加指定的字符集c: 文档和设置 administrator MySQL dump-uroot-p123-default-字符集=gbktgttgbk2.sql.打开看看。嘿,够了。第二步:打开phpmyadmin。导入并选择虚拟主机提供的文件ttgbk2.sql。这速度,唉。过了一会儿,我报告了一个错误。执行锁表表名写入时出现拒绝访问错误。原来我是一个没有锁表权限的虚拟主机用户。当我打开sql时,我真的可以选择锁定表。如果你没有权限,你就不需要这个。在网上搜索并说出跳过锁表。我觉得很好。应该就是这个“跳锁表”。添加-跳过-锁定-tables当mysqldump,并且命令行将变成c : Documents and Settings Administrator MySQL dump-uroot-p123-default-character-set=gbk-跳过-锁定-tables ttgtgbk3.sql .结果令人失望,但是出现了-跳过-锁定-tables。在阅读了mysqldump - help之后,我意识到使用跳过锁表来防止备份过程中的读写。但是如果不想用锁表导出(因为导入的时候没有权限,呵呵),应该用add-lock=false,这是两个概念。以下是正确的:c: 文档和设置 administrator MySQL dump-uroot-p123-default-character-set=gbkttg-add-locks=false ttgttg 3 . SQL .我在记事本中导出的版本是asni格式。在phpmyadmin再次导入。结果是导入3个表后出现错误。mysql语句出错。乍一看,中文是乱码。接近崩溃。找另一个理由。将“MySQL连接校对”改为gbk-chinese-ci,将语言改为汉化简体(如图2所示)。然后在导入时将“文件编码”改为“gbk”(默认为utf-8,当然用记事本打开时对应的sql文件编码为ansi)(如图3所示)。再试一次。

(图2:修改链接校对和语言)

(图3:将文件的字符集修改为gbk)最后,所有的表都被成功导入。打开包含中文的表格,字段显示正常。2.经验:1。数据库编码属于数据库编码。确保连接校对与数据库编码一致。2.sql文件代码属于文件代码。最好确保导入过程中选择的文件代码与数据库中使用的代码一致。这是两个编码问题。感谢mysql。从知道自己有这个编码问题到现在,你还是这样。这个问题仍然困扰着许多人。什么时候才能像sqlserver一样国际化?

更多资讯
游戏推荐
更多+