将新数据库和站点添加到多站点 vps 时出现“连接到数据库时出错”wordpress 错误

Posted

技术标签:

【中文标题】将新数据库和站点添加到多站点 vps 时出现“连接到数据库时出错”wordpress 错误【英文标题】:"error connecting to database" wordpress error when adding new db and site to multi-site vps 【发布时间】:2021-03-05 02:15:30 【问题描述】:

在某些情况下,我通过 nginx 在单个 VPS 上运行多个站点,它们都是 WordPress 站点。 我遇到的问题是,我今天创建了一个新站点并为其创建了一个新的 mysql 数据库并使用以下方式分配了一个用户:

GRANT ALL ON dbNew.* TO admin @'localhost' IDENTIFIED BY 'newPassword';

它破坏了我所有其他 WP 网站的数据库连接。

恢复所有其他站点连接的唯一解决方案是对恢复所有其他站点连接的已知工作站点运行上述命令。

GRANT ALL ON dbOld.* TO admin @'localhost' IDENTIFIED BY 'oldPassword';

经过大量的谷歌搜索,我已经尝试了所有推荐的方法,包括在安全模式下运行以及打开和关闭 MySQL、刷新等。

我觉得我在这里遗漏了一些明显的东西,或者还有其他一些错误,我过去遵循相同的过程没有任何问题,目前在此 VPS 上托管 5 个 WordPress 站点,并且没有硬件限制。

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

你正在用那个命令做两件不同的事情。授予用户访问新数据库的权限,并更改该用户的密码。您没有为不同数据库的同一用户设置单独的密码。

根据this document 中的注释,在 MySQL 5.7 中不推荐使用 IDENTIFIED BYGRANT

使用 GRANT 定义帐户身份验证特征是 在 MySQL 5.7 中已弃用。相反,建立或更改身份验证 使用 CREATE USER 或 ALTER USER 的特征。期待这个 GRANT 将在未来的 MySQL 版本中删除。

【讨论】:

所以我想我想要实现的是为每个新数据库设置一个用户/密码。根据您所说的,我在所有数据库中使用相同的用户,所以当我尝试创建一个新用户时,我实际上是在更改权限中的“管理员”用户密码? 是的。我就是这么理解的。

以上是关于将新数据库和站点添加到多站点 vps 时出现“连接到数据库时出错”wordpress 错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在尝试用 110 渲染站点时出现错误?

Wordpress:将本地主机数据库导入实时站点时出现问题

将站点部署到 Azure 时出现“OperationalError:数据库已锁定”

尝试 PUT 到 HTTPS 站点时出现无效凭据错误

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

将 WordPress 从 WAMP 上传到 GoDaddy 时出现数据库错误(无法在本地访问站点)