首页 > 解决方案 > 尝试在本地测试 WordPress 站点时出现数据库错误(由 WooCommerce 引起?)

问题描述

我有一个托管在 GoDaddy 上的 WordPress 网站,并希望在本地对其进行测试。

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

端口更改后,我在 XAMPP 中创建了一个新目录并插入了一个 HTML 文件以在LOCALHOST:8080. 它奏效了,所以我准备好传输我的 WordPress 文件了。

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

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

Fatal error: Uncaught RuntimeException: Error saving action: Error saving action: Database error. in C:\xampp\apps\wordpress\htdocs\wp-content\plugins\woocommerce\packages\action-scheduler\classes\migration\ActionScheduler_DBStoreMigrator.php:44 Stack trace: #0 C:\xampp\apps\wordpress\htdocs\wp-content\plugins\woocommerce\packages\action-scheduler\classes\data-stores\ActionScheduler_HybridStore.php(242): ActionScheduler_DBStoreMigrator->save_action(Object(ActionScheduler_Action), NULL) #1 C:\xampp\apps\wordpress\htdocs\wp-content\plugins\woocommerce\packages\action-scheduler\classes\ActionScheduler_ActionFactory.php(177): ActionScheduler_HybridStore->save_action(Object(ActionScheduler_Action)) #2 C:\xampp\apps\wordpress\htdocs\wp-content\plugins\woocommerce\packages\action-scheduler\classes\ActionScheduler_ActionFactory.php(84): ActionScheduler_ActionFactory->store(Object(ActionScheduler_Action)) #3 C:\xampp\apps\wordpress\htdocs\wp-content\plugins\woocommerce\packages\action-scheduler\functions.php(36): ActionScheduler_ActionFactory->single('action_schedule...', Array, 1630078934, 'action-schedule...') #4 C:\xampp\apps\wordpress\htdocs\wp-content\plugins\woocommerce\packages\action-scheduler\classes\migration\Scheduler.php(89): as_schedule_single_action(1630078934, 'action_schedule...', Array, 'action-schedule...') #5 C:\xampp\apps\wordpress\htdocs\wp-content\plugins\woocommerce\packages\action-scheduler\classes\migration\Controller.php(99): Action_Scheduler\Migration\Scheduler->schedule_migration() #6 C:\xampp\apps\wordpress\htdocs\wp-includes\class-wp-hook.php(303): Action_Scheduler\Migration\Controller->schedule_migration('') #7 C:\xampp\apps\wordpress\htdocs\wp-includes\class-wp-hook.php(327): WP_Hook->apply_filters(NULL, Array) #8 C:\xampp\apps\wordpress\htdocs\wp-includes\plugin.php(470): WP_Hook->do_action(Array) #9 C:\xampp\apps\wordpress\htdocs\wp-settings.php(600): do_action('wp_loaded') #10 C:\xampp\apps\wordpress\htdocs\wp-config.php(111): require_once('C:\\xampp\\apps\\w...') #11 C:\xampp\apps\wordpress\htdocs\wp-load.php(50): require_once('C:\\xampp\\apps\\w...') #12 C:\xampp\apps\wordpress\htdocs\wp-blog-header.php(13): require_once('C:\\xampp\\apps\\w...') #13 C:\xampp\apps\wordpress\htdocs\index.php(17): require('C:\\xampp\\apps\\w...') #14 {main} thrown in C:\xampp\apps\wordpress\htdocs\wp-content\plugins\woocommerce\packages\action-scheduler\classes\migration\ActionScheduler_DBStoreMigrator.php on line 44

标签: wordpresswoocommercexampplocalhost

解决方案


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

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

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

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

在哪里可以具体说明,即如果可能,选择用户,如果可能,选择主机,如果可能,选择数据库,如果可能,选择表,如果可能,选择权限访问(插入选择等)。请记住,尽管其中大部分都可以使用通配符:(即 ALL、*、%)

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

如果您不能足够具体,请使用通配符放松 GRANT,直到您看到某些工作正常,然后再次收紧它们。


推荐阅读