找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 41|回复: 0

[电脑] 【问题汇总】MySQL 5.7数据库降级到5.6的解决方法!

[复制链接]

25

主题

22

回帖

226

积分

管理员

积分
226
发表于 2025-4-16 04:32:42 | 显示全部楼层 |阅读模式
最初,我的网站使用的是Windows 2003的IIS 6.5+PHP套件,这样服务器系统重装后,把网站的数据库文件夹直接复制进新装的MySQL data目录下即可,非常的方便。升级服务器后,迫不得已使用了宝塔面板,经常出现nginx假死的状况影响用户体验,同时宝塔面板添加数据库非常的繁琐,而我又不喜欢“备份、导入”数据库操作。

我测试了护卫神主机大师、phpstudy、destoon一键安装包等工具,都无法实现我心里的快捷方法。一次偶然机会,我在国内服务器上使用护卫神PHP套件,感觉不错,结合windows 2012的iis 8.5使用非常完美。所以,我想把海外的云服务器也从宝塔面板改为iis8.5+护卫神PHP套件,这是灾难的开始,为此我花费了近乎两天的时间。

新装好服务器系统后,护卫神PHP套件最高版本的MySQL是5.6.44(我不喜欢安装他们的主机大师),能识别得了之前宝塔的5.7版本数据库,但是网站打开始终报错:Discuz! Database Error (1146) Table "数据库表" doesn't exist

11.jpg

我在网上查了很多资料,都有误导性,很多建议将MySQL的MyISAM模式更改为Innodb模式。我按照护卫神官网的“如何切换MySQL数据库的MyISAM模式和Innodb模式?”折腾了很久,还是无果。我犯了大错的原因是思考方向在“如何能让MySQL的5.6版本识别5.7的数据”上


之后,我想到了转换MySQL数据库的版本,这篇文章(mysql数据库高版本迁移到低版本问题)给我的帮助很大,我第一次听到navicat for mysql这个软件,作者提到“果然可以将高版本mysql数据库中的数据无伤导入低版本mysql中”。我下载、安装了navicat for mysql软件后,连接到本地MySQL数据库确实很方便。


但是连接到之前的5.7数据库仍然面临“(1146) Table "数据库表" doesn't exist”的故障提示,并且,服务器上的phpMyAdmin也同样面临这个问题。这两天,我几乎给服务器重新安装了10多次系统,和不同的网站管理面板,很奇怪,宝塔新装后添加数据库,我“从本地服务器获取”,虽然添加了之前5.7版本的数据库,但数据为空!

在我几乎万念俱灰的时候,想起了宝塔的官方论坛,发现很多的站长在网站搬家同样遇到了相同的问题。这个帖子很重要:

https://www.bt.cn/bbs/forum.php?mod=viewthread&tid=21864&highlight=1146

错误ERROR 1146 (42S02):Table doesn’t exist  , 出现这个错误是由于迁移的时候没有把ibdata1拷贝过来。如果拷贝过来后,要给ibdata1正确读写权限660. 如果还不正确删除ib_logfile0、ib_logfile1这两个文件,然后重启一下就可以了。

很庆幸,我最初重装服务器时,一直保留着之前的宝塔面板数据。再次重装系统和宝塔面板,把ibdata1文件拷贝替换、删除ib_logfile0、ib_logfile1后,phpMyAdmin连接到之前的数据库,果然没有了1146的问题提示,这一刻我终于如释重放。用navicat for mysql连接老的数据库,一切顺利。

1.jpg

通过这次经验,我对用navicat for mysql非常喜欢,它几乎可以转换任意版本的MySQL数据库,从升级到降级,真实福音,虽然有14天的试用期,但足够用了!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|友连外贸论坛

GMT+8, 2025-5-22 21:15 , Processed in 0.152574 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表