admin 发表于 2020-12-3 02:34:26

解决Discuz! 恢复数据时出现 1146 表不存在的错误 Read more: http://zctou.com/?...

然后打开论坛首页,显示 116错误,具体错误代码如下:Discuz! Database Error(1146) Table 'xxx.common_syscache' doesn't existSELECT * FROM common_syscache WHERE `cname` IN('setting','style_default','cronnextrun')PHP Debug
No.FileLineCode
1admin.php25discuz_application->init()
2source/class/discuz/discuz_application.php66discuz_application->_init_setting()
3source/class/discuz/discuz_application.php686loadcache(Array)
4source/function/function_core.php702table_common_syscache->fetch_all(Array)
5source/class/table/table_common_syscache.php63discuz_database::query(%s)
6source/class/discuz/discuz_database.php136db_driver_mysql->query(%s, false, false)
7source/class/db/db_driver_mysql.php153db_driver_mysql->halt(%s, %d, %s)
8source/class/db/db_driver_mysql.php224break()
查找相关资料,得到结论是Discuz通过后台备份数据后,搬家过程中没全新安装程序,而直接进restore.php页面导入数据,就会出现各种table缺失的情况。
解决办法很简单,进数据库后台重建一下数据表就行(可以ssh 用命令进mysql操作,也可以进phpmyadmin操作)。解决如下:1. 先找到官方的安装文件,找到相关表的创建语句:具体文件位置(Discuz_X3.2_SC_UTF8\upload\install\data\install.sql),找到相关的语句,我这里是:2. 进phpmyadmin执行语句:http://zctou.com/wp-content/uploads/2017/03/image_thumb-16.png得到错误提示码:MySQL 返回: http://88.80.189.88/phpmyadmin/themes/dot.gif#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=MyISAM' at line 7竟然说是语法错误,再次查找相关资料,得到的结论是:这个错误出现是由于MySQL创建表的写法 TYPE=MyISAM 太古老了,在MySQL 5.6.20上已经不支持了,这个应该在MySQL 5.1后的相关版本已经取消了支持,具体参考链接http://bugs.mysql.com/bug.php?id=17501,只能将mysqldump导出的脚本文件里面的TYPE=MyISAM 全部替换成ENGINE=InnoDB后,才会导入成功。修改后再次执行,成功如图:http://zctou.com/wp-content/uploads/2017/03/image_thumb-17.png3.都修复好后,登录后台,检验一下:发现不少错误:有表缺失,有些刚才建的表字符集不正确。http://zctou.com/wp-content/uploads/2017/03/image_thumb-18.png成功登录,访问也正常,至此问题一一解决,后面的修复都是重复上面的过程,不再累述。

页: [1]
查看完整版本: 解决Discuz! 恢复数据时出现 1146 表不存在的错误 Read more: http://zctou.com/?...