数据库错误(由WooCommerce引起的?)当尝试在本地测试WordPress站点时



我有一个托管在GoDaddy上的WordPress网站,想在本地测试一下。

我将数据库导出为SQL格式并下载到我的本地机器上。然后我安装了XAMPP并将配置文件端口从80更改为8080。现在我可以在LOCALHOST:8080而不是LOCALHOST上打开我的localhost。

端口更改后,我在XAMPP中创建了一个新目录,并插入了一个HTML文件以在LOCALHOST:8080上进行测试。它工作了,所以我准备传输我的WordPress文件。

首先,我把所有的WordPress文件拖放到我创建的新文件夹中。接下来,我将数据库文件导入MySQL。最后,我尝试使用LOCALHOST:8080/wordpress/wp-admin访问我本地的WordPress网站,但是当网站页面出现时,我得到一个错误消息,说我的密码或用户名不正确,并打开wp-config文件并更新信息。

我打开wp-config并将localhost选项更改为localhost:8080。修改了数据库用户名和密码。我现在可以连接到数据库,但我得到一个错误:

Fatal error: Uncaught RuntimeException: Error saving action: Error saving action: Database error. in C:xamppappswordpresshtdocswp-contentpluginswoocommercepackagesaction-schedulerclassesmigrationActionScheduler_DBStoreMigrator.php:44 Stack trace: #0 C:xamppappswordpresshtdocswp-contentpluginswoocommercepackagesaction-schedulerclassesdata-storesActionScheduler_HybridStore.php(242): ActionScheduler_DBStoreMigrator->save_action(Object(ActionScheduler_Action), NULL) #1 C:xamppappswordpresshtdocswp-contentpluginswoocommercepackagesaction-schedulerclassesActionScheduler_ActionFactory.php(177): ActionScheduler_HybridStore->save_action(Object(ActionScheduler_Action)) #2 C:xamppappswordpresshtdocswp-contentpluginswoocommercepackagesaction-schedulerclassesActionScheduler_ActionFactory.php(84): ActionScheduler_ActionFactory->store(Object(ActionScheduler_Action)) #3 C:xamppappswordpresshtdocswp-contentpluginswoocommercepackagesaction-schedulerfunctions.php(36): ActionScheduler_ActionFactory->single('action_schedule...', Array, 1630078934, 'action-schedule...') #4 C:xamppappswordpresshtdocswp-contentpluginswoocommercepackagesaction-schedulerclassesmigrationScheduler.php(89): as_schedule_single_action(1630078934, 'action_schedule...', Array, 'action-schedule...') #5 C:xamppappswordpresshtdocswp-contentpluginswoocommercepackagesaction-schedulerclassesmigrationController.php(99): Action_SchedulerMigrationScheduler->schedule_migration() #6 C:xamppappswordpresshtdocswp-includesclass-wp-hook.php(303): Action_SchedulerMigrationController->schedule_migration('') #7 C:xamppappswordpresshtdocswp-includesclass-wp-hook.php(327): WP_Hook->apply_filters(NULL, Array) #8 C:xamppappswordpresshtdocswp-includesplugin.php(470): WP_Hook->do_action(Array) #9 C:xamppappswordpresshtdocswp-settings.php(600): do_action('wp_loaded') #10 C:xamppappswordpresshtdocswp-config.php(111): require_once('C:\xampp\apps\w...') #11 C:xamppappswordpresshtdocswp-load.php(50): require_once('C:\xampp\apps\w...') #12 C:xamppappswordpresshtdocswp-blog-header.php(13): require_once('C:\xampp\apps\w...') #13 C:xamppappswordpresshtdocsindex.php(17): require('C:\xampp\apps\w...') #14 {main} thrown in C:xamppappswordpresshtdocswp-contentpluginswoocommercepackagesaction-schedulerclassesmigrationActionScheduler_DBStoreMigrator.php on line 44

注意:我没有足够的声誉来评论,所以其他人可以评论,我可以删除这个答案。

在我看来,用户用来访问/连接数据库服务器,现在它可以连接,只需要被授予权限对数据库和导入的表进行读写。

阅读GRANT总览部分(如果你有耐心,也可以阅读整页)https://dev.mysql.com/doc/refman/5.7/en/grant.html

并授予您在wp-config文件中添加的相同用户足够的权限来读写数据库/数据库中的表。

在可能的地方要明确,即选择用户(如果可能),选择主机(如果可能),选择数据库(如果可能),选择表(如果可能),选择权限访问(insert select等)。请记住,虽然其中很多都可以使用通配符:(即ALL, *, %)

GRANT ALL ON *.* TO 'someuser'@'%';

如果你不能得到足够的具体,使用通配符放松GRANT,直到你看到一些工作,然后再次收紧它们。

此问题记录在Action Scheduler github页面上,与内部DB迁移和缺少表有关。

add_action( 'init', function() { delete_option( 'schema-ActionScheduler_StoreSchema' ); } );

你可以把这段代码放在你的主题的functions.php中,访问该站点,当错误消失时删除它

您的问题可以通过检查数据库表wpvl_actionscheduler_actions来修复action_id不是AUTO_INCREMENT

相关内容

最新更新