- N +

opencart 提示错误 oc_session' doesn't exist 和 oc_cart' doesn't exist 问题

opencart 提示错误 oc_session' doesn't exist 和 oc_cart' doesn't exist 问题 原标题:opencart 提示错误 oc_session' doesn't exist 和 oc_cart' doesn't exist 问题

导读:

很多人在迁移网站的时候,喜欢把mysql文件夹下的data的数据直接打包复制,这样是不规范的。  以opencart为例,这样打包迁移,就会出错Fatal ...

579a8ee8-5415-4aaf-bccf-b891069f9b15.jpg

很多人在迁移网站的时候,喜欢把mysql文件夹下的data的数据直接打包复制,这样是不规范的。  以opencart为例,这样打包迁移,就会出错

Fatal error: Uncaught Exception: Error: Table 'opencart302.oc_session' doesn't exist<br />Error No: 1146<br />SELECT `data` FROM `oc_session` WHERE session_id = '7d20e27e1a8ec9f19533f70f10' AND expire > 1520911611 in E:\htdocs\opencart302\upload\system\library\db\mysqli.php:40 Stack trace: #0 E:\htdocs\opencart302\upload\system\library\db.php(45): DB\MySQLi->query('SELECT `data` F...') #1 E:\htdocs\opencart302\upload\system\library\session\db.php(21): DB->query('SELECT `data` F...') #2 E:\htdocs\opencart302\upload\system\library\session.php(72): Session\DB->read('7d20e27e1a8ec9f...') #3 E:\htdocs\opencart302\upload\system\framework.php(106): Session->start('7d20e27e1a8ec9f...') #4 E:\htdocs\opencart302\upload\system\startup.php(104): require_once('E:\\htdocs\\ytaob...') #5 E:\htdocs\opencart302\upload\admin\index.php(19): start('admin') #6 {main} thrown in E:\htdocs\opencart302\upload\system\library\db\mysqli.php on line 40
    Fatal error: Uncaught Exception: Error: Table 'opencart302.oc_session' doesn't exist<br />Error No: 1146<br />REPLACE INTO `oc_session` SET session_id = '7d20e27e1a8ec9f19533f70f10', `data` = '[]', expire = '2018-03-13 03:50:51' in E:\htdocs\opencart302\upload\system\library\db\mysqli.php:40 Stack trace: #0 E:\htdocs\opencart302\upload\system\library\db.php(45): DB\MySQLi->query('REPLACE INTO `o...') #1 E:\htdocs\opencart302\upload\system\library\session\db.php(32): DB->query('REPLACE INTO `o...') #2 E:\htdocs\opencart302\upload\system\library\session.php(81): Session\DB->write('7d20e27e1a8ec9f...', Array) #3 [internal function]: Session->close() #4 {main} thrown in E:\htdocs\opencart302\upload\system\library\db\mysqli.php on line 40


找不到  session和cart表,为什么呢?

因为这两张表是使用的InnoDB的Compact格式。这里可能有人会问Compact是什么?Compact行记录是在MySQL 5.0时被引入的,其设计目标是能高效存放数据。简单来说,如果一个页中存放的行数据越多,其性能就越高。所以当你打包数据文件的时候肯定是打包不出来的。


遇到问题就要解决,手动添加这两张表吧(opencar3.0可以直接添加)

 DROP TABLE IF EXISTS `oc_cart`;
    CREATE TABLE `oc_cart` (
      `cart_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
      `api_id` int(11) NOT NULL,
      `customer_id` int(11) NOT NULL,
      `session_id` varchar(32) NOT NULL,
      `product_id` int(11) NOT NULL,
      `recurring_id` int(11) NOT NULL,
      `option` text NOT NULL,
      `quantity` int(5) NOT NULL,
      `date_added` datetime NOT NULL,
      PRIMARY KEY (`cart_id`),
      KEY `cart_id` (`api_id`,`customer_id`,`session_id`,`product_id`,`recurring_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

    DROP TABLE IF EXISTS `oc_session`;
    CREATE TABLE `oc_session` (
      `session_id` varchar(32) NOT NULL,
      `data` text NOT NULL,
      `expire` datetime NOT NULL,
      PRIMARY KEY (`session_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;


那么正确迁移数据库的方式是什么样的?

导出SQL文件,这个才是正确操作

返回列表
上一篇:
下一篇:

发表评论中国互联网举报中心

快捷回复:

验证码

    评论列表 (暂无评论,共4531人参与)参与讨论

    还没有评论,来说两句吧...