MySQL 导入恢复数据库错误
执行命令: mysql -u[username] -p[password] dbname<dbbak.sql
遇到“ERROR 1406 (22001): Data too long for column at ” 某个字段过长,实际上是数据库sql文件中含有UTF8编码 如中文字段内容在Windows下,命令行窗口不支持UTF-8编码,即便使用“set names utf8;”不会达到转化中文的效果。但是这个问题还是可以解决的: (1)使用默认编码建立数据库。这种情况下就可以直接输入中文了,但是相应的问题,就是会失去UTF-8编码的灵活性。特别是不利于软件的国际化。 (2)放弃命令行窗口登录MySQL,使用图形化客户端。客户端工具可以MySQL的官方网站上找到。(比如navicat,mysql GUI tools之类的软件)
实际上sql文件小的话完全可以用phpMyAdmin的导入方式来解决的。对于大文件用上面提到的导入命令,效率比较高。实际上经过尝试,还有第三种解决方案,命令行模式mysql登录到控制台模式,用
source命令来导入 sql文件,很奇怪此时就不会再报错了。唯一不爽的是source 命令会输出一行行的sql执行结果,但在无图形化客户端的情况,仍不失为一个好办法,希望对需要的童鞋有用!
最新评论