导入sql文件遇到的尴尬(错误1366、cmd显示乱码)

  1. win+R-->cmd-->mysql -u 账号 -p 回车-->密码-->创建数据库create database lp; 回车-->切到该数据库use lp; 回车
  2. 开始导入sql文件:source 文件路径【如:e:lp.sql】
  3. 疯狂报错,一页的1366
  4. 将数据库删除drop database lp;回车以后重新建立该数据库
  5. 找到安装数据库的位置,一般情况下如果忘了可以去环境变量里面查看位置,安装时一般会配置环境变量方便操作,点开mysql文件夹即可以看到my.ini,如果是其他版本则可能因为缺省而隐藏了,此时可以点开查看把隐藏文件勾上,在programdata里面就能找到。
  6. 找到sql-mode,改成sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",即去掉严格模式,不进行数据的严格校验,可能是空值的原因造成问题
  7. 保存my.ini,打开任务管理器,重启mysql服务
  8. 再进行导入,成功
  9. 在cmd中查询表名,然后查询某张带有中文的表,乱码,exit回车退出数据库
  10. 首先搜索了一下,然后修改cmd的活动页,chcp 65001【utf8代码】或者【chcp 936   【gbk代码】】回车
  11. 记事本打开my.ini,找到[client]、[mysql]、[mysqld]全部在后面使用utf8编码【没有“-”】如:default-character-set=utf8
  12. 保存以后依旧重启服务,再次查询,依然乱码
  13. 再搜索了一下,好吧,我也不知道当时在干嘛,执行查询前加入一句,比如:set character_set_results=gb2312;等等,疯狂改等号右边的编码,发现依然乱码。【设置编码前查了所有编码show variables like 'character_set_database';有一个是bi...,其余全部是utf8
  14. 反复尝试,只是乱码乱得越来越别致而已
  15. 最后,灵光一现,找到sql文件,选择记事本打开,选择另存,看到下面的编码是utf-8,当时觉得那应该是对的吧,但是实在没有办法就把下面各种保存方式都试了一下,试到使用ANSI方式保存sql文件然后导入查询发现不乱码了
  16. 最后又使用show variables like 'character_set_database';查看编码,发现此时所有编码只有一个,全部统一。
  17. 那么,在第13步的时候,使用类似如:set xxxx=utf8;把查询到的信息全部改成utf8应该也是可行的。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值