将⾼版本mysql数据库的数据导⼊低版本mysql中
前⾔
最近做了个⽹站,准备放到虚拟主机上的时候,发现本地数据库是mysql5.6,服务器上的mysql是5.0的。于是尝试导出数据,结果,导⼊的数据不是出错,就是各种乱码。折腾了好久之后,终于到了解决之道,特来⽔⼀贴,分享⼀发。
建议是在数据迁移的时候版本差距别太⼤,有可能会出现版本兼容问题。
⽅法
之前⽤的是phpmyadmin导出的,即使设置了mysql导出兼容低版本,还是有问题。后来,想到了电脑上还装了个navicat for mysql,打开⼀看,果然可以将⾼版本mysql数据库中的数据⽆伤导⼊低版本mysql中。前提是你装了navicat for mysql,步骤:
1. 打开navicat for mysql,选择你要导出的数据库,然后右键
2. 设置属性,选择对应的mysql版本即可,然后开始
总结
⾼版本mysql和低版本mysql之间会有兼容性问题,⼀不⼩⼼就可能导致乱码或者错误。”Unknown collation: ‘utf8mb4_unicode_ci”错误问题。
不同的msyq版本和不同的mysql驱动会出现不兼容问题
解决办法是重新下载mysql 并使⽤相同版本的驱动。。。结果就没有问题了。
后来,我⼜重新⽤了之前的驱动,结果也没有问题。所以我觉得应该是我之前的mysql数据库出问题了。
看⽹上说,最好⽤较⾼版本的的驱动,这样会向下兼容。
mysql5.x升级到mysql5.7后导⼊之前数据库date出错的快速解决⽅法【mysql低版本数据导⼊到⾼版本出错】
mysql下载什么版本的【具体参考:】
修改mysql5.7的配置⽂件即可解决,⽅法如下:
 linux版:到mysql的安装路径进⼊默认的为/usr/share/mysql/中,进⾏对my-defaultf编辑利⽤查功能"/" 到"sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES"将其删除或者是注释即可。
 Windows版:
32位到mysql安装路径直接修改my.ini⽂件利⽤ctrl+f搜索出来的内容
 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"将其注释或者是删除即可。
  64位需要进⼊windows的安装⽬录下XXX\MySQL Server 5.7\Data,修改配置⽂件my.ini,利⽤ctrl+f搜索出来
 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"将其注释者删除即可。
⾼版本mysql导⼊低版本mysql的⽅法解决数据库乱码的问题
⽤PHP+mysql开发的⽹站经常会遇到mysql数据库版本不同导致迁移⽹站数据时经常出现:导⼊不成功,如出现数据库臭⾍,导⼊后是乱码等问题
邦明科技迁移mysql数据库的⽅法是:
⾼版本mysql导⼊低版本mysql的⽅法:
1.从⾼版本的mysql默认导出utf-8为mysql.sql
2.⽤记事本打开mysql.sql
3.去掉含有/*!40101 符号的注释⾏
4.复制所有记事本⾥的sql语句
5.打开低版本的mysql数据库,然后点击查询SQL,将复制的SQL代码粘贴到SQL查询框中执⾏
6.这样就成功将⾼版本的mysql导⼊到低版本的mysql,并解决了乱码问题
之前做的很多失败过程:
1.删除头尾:/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;导⼊utf-8⽆法导⼊,出错
2.另存为ansi 导⼊utf-8可以导⼊,乱码,⽆法显⽰
3.另存为:unicode 导⼊utf-8⽆法导⼊,出错
4.另存为unicode 替换utf-8为latin1 导⼊utf-8⽆法导⼊,出错
5.另存为unicode 替换utf8为latin1 导⼊utf-8⽆法导⼊,出错

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。