我使用Duplicator Pro将我的实时网站移动到Windows 11 Pro桌面上的WampServer虚拟主机上。除了PHP_Error. log文件中的两个重复出现的错误外,一切正常:
[2023年2月19日16:15:21世界标准时间] WordPress数据库错误查询表'前缀e事件'已经存在创建表前缀e事件...
以及
[2023年2月19日16:15:21世界标准时间] WordPress数据库错误查询的键值名'create_at_index'重复ALTER TABLE _PREFIX_e_events添加INDEX create_at_index(创建的时间)...
注意,我将真实的的前缀改为“prefix”。
我知道这个错误是由命令中的混合大小写前缀/前缀引起的。我在my.ini文件中添加了“lower_case_table_names = 2”,但WampServer不会启动,并出现此错误:
2023-02- 22 T15:59:25.510378Z 1 [错误] [MY-011087] [服务器]服务器('2')和数据字典('1')的表名小写设置不同。
我认为我需要重新初始化服务器,但我不知道如何做到这一点。This post给出了如何在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中将前缀改为小写,这样可以消 debugging 误,但直到我退出时才生效。我无法登录,必须在wp-config.php中将前缀恢复为大写,然后重新登录WordPress,并重新启动网站功能。
1条答案
按热度按时间92dk7w1h1#
更改前缀后无法登录的原因是用户角色缓存在选项表中。
根据上面的错误,看起来您将
$table_prefix
从_PREFIX_
更改为_prefix_
。因此,这就是我在下面的UPDATE
语句中使用的内容。除了修改
$table_prefix
,您还需要更新数据库中的一些值:有可能是你的事件插件以其他方式缓存了旧的前缀。你使用的是什么插件?
在Windows上重新初始化MySQL
以下说明基于以下内容:
MySQL80
的MySQL Windows服务mysqld.exe
的路径:C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe
my.ini
的路径:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
datadir
的路径:x1米11米1x1.以管理员身份打开cmd.exe
1.停止MySQL服务
1.在my.ini的[mysqld]部分中查找并更改或添加"lower_case_table_names = 2
1.移动当前数据目录
1.创建新数据目录
1.初始化MySQL
1.记下initialize生成的新临时密码
1.启动MySQL服务
1.使用新密码(来自步骤7)
登录mysql
1.设置新密码
,或者,如果您希望密码为空: