这是解决方案,来自SkyVerge的Steve帮我解决了这个问题,很抱歉没有编辑,现在是凌晨2点,我太累了:
嗨,Steve,看起来问题已经解决了。没有必要更改“允许来宾登录”,因为问题最终是其他问题。
在对问题和解决方案进行了大量研究之后,我还将把这篇文章发布到网上,因为我发现其他几个人都不知道如何解决这个问题,而且没有关于如何解决这个问题的说明。
以下是我将在网上发布的简介,也是为了防止其他人在用户名中使用特殊字符(中文、日语、俄语、希腊语等),他们似乎也有这个问题,下面是解决方案:
问题是:
当用户创建用户名时,例如:使用俄语西里尔文,wordpress最初不接受这种特殊字符,因此其他人(像我一样)使用插件(例如:用户名中的wordpress特殊字符(我有这个,但还有其他的)),将西里尔字母转换为html格式,这允许从wordpress中手动创建带有西里尔字母的用户名wordpress的用户名之所以出现这种中断,是因为当转换发生时,对于1个俄语西里尔文字母,我想大约会创建5个html字符,因此,像АааСаиВааиииииииииииииииииииииииаиииииииииииииа?这样的俄语名称/姓氏将最大化数据库中的字符数(我认为大约是50或60个字符),特别是最大化:db>username>user\\u nicename此更改的典型命令:ALTER TABLEwp_users
修改user_nicename
VARCHAR(255)它将给出一个错误:“user\\u registered”(用户注册)的默认值无效此错误是由于wordpress模式更改而创建的(无论这意味着什么)
要绕过此模式,必须访问根管理器sql控制台并执行此操作:- 首先检查并记录当前sql模式,方法是:显示“sql\\u模式”之类的变量;,并写下给定的模式(因为我们需要在更改后重新使用该模式),接下来,将新的全局模式设置为没有“NO\\u ZERO\\u IN\\u DATE,NO\\u ZERO\\u DATE”的模式,例如:set global sql\\u mode=“ONLY\\u FULL\\u GROUP\\u BY,STRICT\\u TRANS\\TABLES,ERROR\\u for\\u DIVISION\\u BY\\u ZERO,NO\\u ENGINE\\u SUBSTITUTION”
现在允许此命令执行:ALTER TABLEwp_users
修改user_nicename
VARCHAR(255)运行该命令,现在通过使用:set global sql\\u mode=\'返回到以前的sql模式,键入步骤10.1中记录的任何模式,即现在带有特殊字符的用户名将自动作为用户创建的用户名进行处理,没有错误。,当然,它做到了(创建了成员身份),这让我意识到问题在于user\\u nicename的varchar长度,因为更长的名称无法通过因此,现在一切都好了,从长远来看,只有一个风险,即varchar增加到255会破坏数据库。但这不是你的问题,伙计们,如果有什么事情发生,我会设法找一个程序员来帮助这部分。所以,感谢你们的努力,并没有放弃我,你们是我有过的最好的客户支持,你们从未放弃过我,对我非常耐心,我非常感谢你们的帮助和指导:)