昨天pj8.net网站搬家遇到数据库无法导入的问题,解决方法

02.17 - 杜平

我做网站也有快10年的时间了,有一定的开发能力,各种类型的网站,CMS程序都玩过无数,但是昨天搬个家,折腾了我整整一天,往往就是一些细小的问题导致的,我把它写出来,各位如果在以后遇到相同问题的时候,可以参照我的方法,即可快速的解决。

我的网站一直放在爱名网的香港免备案的服务器上,感觉速度不太理想,对搜索引擎优化不利以及用户体验也不好,所以我就把网站迁回国内的阿里云独享虚拟主机。

我是全站迁移方案

1.老服务器,备份全站程序,用phpmyadmin工具备份老站的mysql数据库

2.把老程序上传到阿里云新虚似空间

第三步就是把旧数据,导入到阿里云的新数据库中时,出现无法导入的错误。

执行的SQL语句出错:
/*!40101 SET NAMES utf8mb4 */
错误信息:Unknown character set: ‘utf8mb4’

从上面报错,很明显,是当前MYSQL系统不支持utf8mb4,解决方法是,把数据库中utf8mb4改成utf8

当我把错误修改后,再次导入数据库时,又有新问题出现,根据错误提示,来回改了四五次,还是各种报错,于是放弃继续修改错误。我立即想到,会不会是mysql版本不相同,导致的无法兼容了,

于是我立即把新旧数据库打开,查看它们的版本号是否一致。结果发现在版本差别太大了,老服务器是5.6版本,新服务器是5.1版本。

从数据库理论上讲,高版本可以向低版本兼容,低版本不能兼容高版本,MYSQL官方也没有查到高版本改低版本的技术资料,

并且阿里云的虚似主机,是不支持更换数据库版本的,阿里工程师给出的答复就是高版本无任何方法向低版本兼容,建议出钱购买他们的rds使用(一查要几千块,果断放弃),但是在百度搜索查出很多网友给出的方法和教程,我一一做了尝试,终于找到一个完美无错的解决的方法。

1.用phpmyadmin工具,以兼容模式导出数据库(以下图为例)

2.用编辑软件打开SQL文件,用替换功能把所有数据库中的utf8mb4改成utf8。

3.然后在阿里云的数据后台,直接导入我们修改好的SQL文件,即可成功导入。

4.把网站的config配置文件中的数据库名,用户名,密码,数据库地址修改并成功上传后,网站就正常了

阅 243
0
  1. 2019.02.18 - ??杜???

    788

我做网站也有快10年的时间了,有一定的开发能力,各种类型的网站,CMS程序都玩过无数,但是昨天搬个家,折腾了我 […]