如何在 WampServer 上重新初始化 MySQL 以允许 lower_case_table_names = 2

问题描述 投票:0回答:1

我使用 Duplicator Pro 将我的实时站点移动到 Windows 11 Pro 桌面上 WampServer 上的虚拟主机。除了 PHP_Error.log 文件中的两个反复出现的错误外,一切正常:

[19-Feb-2023 16:15:21 UTC] WordPress 数据库错误表 ‘_prefix_e_events’ 已存在用于查询 CREATE TABLE _PREFIX_e_events ...

[19-Feb-2023 16:15:21 UTC] WordPress 数据库错误 Duplicate key name “created_at_index”用于查询 ALTER TABLE _PREFIX_e_events ADD INDEX created_at_index(created_at)...

注意我把real prefix改成了“prefix”。

我知道错误是由命令中的混合大小写 PREFIX/prefix 引起的。我在 my.ini 文件中添加了“lower_case_table_names = 2”,但是 WampServer 不会启动并出现此错误:

2023-02-22T15:59:25.510378Z 1 [错误] [MY-011087] [服务器] 不同 服务器('2')和数据字典的 lower_case_table_names 设置 ('1').

我相信我需要重新初始化服务器,但我不知道该怎么做。 这篇文章 清楚地说明了如何在 Linux 中执行此操作。

重新初始化服务器是正确的解决方案吗?如果是这样,有谁知道如何在 Windows 11 上使用 WampServer 3.3.1 执行此操作?如果没有,我的下一步是什么?

我尝试过的其他事情,但没有运气:

安装最新版本的MySQL 8.0.32,编辑my.ini文件添加lower_case_table_names = 2,然后启动WampServer并切换到新版本的MySQL。这会产生与不匹配的服务器/数据字典相同的错误。

启动 phpMyAdmin 并尝试将 lower_case_table_names 设置从 1 更改为 2,但出现此变量为只读的错误消息。

在 wp-config.php 中将前缀更改为小写。这消除了错误,但只在我注销之前有效。我无法登录,不得不在 wp-config.php 中将前缀恢复为大写,然后重新登录到 WordPress 并再次使用站点功能。

mysql wamp
1个回答
0
投票

更改前缀后无法登录的原因是用户角色缓存在选项表中。

根据您上面的错误,您似乎将

$table_prefix
_PREFIX_
更改为
_prefix_
。所以,这就是我在下面
UPDATE
陈述中使用的内容。

除了改变

$table_prefix
,你还需要更新数据库中的一些值:

UPDATE _prefix_usermeta
SET meta_key = REPLACE(meta_key, '_PREFIX_', '_prefix_')
WHERE BINARY meta_key LIKE '%\_PREFIX\_%';

UPDATE _prefix_options
SET option_name = REPLACE(option_name, '_PREFIX_', '_prefix_')
WHERE BINARY option_name LIKE '%\_PREFIX\_%';

您的事件插件可能以其他方式缓存旧前缀。你用的是什么插件?

如果上述更新不能解决您的问题,我可以添加在 Windows 上重新初始化 MySQL 的说明。

© www.soinside.com 2019 - 2024. All rights reserved.