在 WordPress 中使用 MySQL
已发表: 2023-02-12如果您管理 WordPress 网站,您可能会发现自己想要了解更多有关其数据库功能的信息。 了解您的网站在幕后如何工作很有用,有时您甚至可能需要直接访问您网站的数据库。
这就是 MySQL 的用武之地。结构化查询语言 (SQL) 是 WordPress 数据库的管理系统。 我们稍后会详细介绍,但只要说数据库是您网站的大脑,而 MySQL 是神经系统,来回发送命令以检索信息和执行操作就足够了。
在这篇文章中,我们将详细解释 MySQL 如何在 WordPress 上工作。 此外,我们将回顾您可能遇到的几个数据库错误,并解释如何补救它们。 让我们开始吧!
MySQL解释
您可能听说过之前将数据库描述为文件柜的地方,它是一个将您网站的所有重要信息分类存放的地方。 在这个类比中,橱柜中的各个文件夹是保存信息的数据库表。
至于 MySQL,它是如何发出请求以在这些文件夹中放置或删除数据的。 您还可以使用 MySQL 为文件柜的每个部分允许放置的内容设置规则。
然而,MySQL 不能单独运行。 它是用于创建网站的一系列软件应用程序的一部分。 其他组件包括 Linux、Apache、MySQL 和 PHP (LAMP)。 他们共同组成了开源编程世界的“梦之队”。
将 MySQL 用于 WordPress
对于 WordPress,PHP 脚本语言用于从 MySQL 数据库发送和检索信息。 这两个元素处理从登录站点用户到存储主题和插件信息以进行动态内容显示的所有事情。
MySQL 使用表结构来存储数据。 大多数网络主机都带有一个名为 phpMyAdmin 的 MySQL 用户界面软件。 这个免费的开源软件使运行数据库命令变得容易。 它使您能够编辑、删除或创建表、行和字段:
在标准的 WordPress 安装过程中,会在您的数据库中创建 12 个表。 您可以在上图中的左侧看到它们。 这些表格包括您的站点运行所需的关键信息。
例如, wp_options表存储您可以从 WordPress 仪表板中的“设置”菜单访问和控制的选项。 它也是各种与小部件相关的设置的所在地。
正如您在 phpMyAdmin 面板中看到的那样,当您单击其名称时,有关任何表中包含的所有数据的信息都将可见。 这包括与特定字段关联的任何值或参数。
MySQL 插件/扩展
虽然没有多少插件可以直接增强 WordPress 中的 MySQL 功能,但如果您计划经常手动更改或更改数据库,则有一些工具值得一试。
例如,如果您希望能够从您的 WordPress 仪表板访问您网站的 phpMyAdmin 面板,而不是通过您的虚拟主机的控制面板,WP phpMyAdmin 是一个有用的插件:
这是一个简单但流行的解决方案,可以方便地访问您的数据库。 这也可以更容易地解决与 MySQL 相关的错误,我们将在下面看到。
WordPress 中常见的 MySQL 错误(以及如何解决)
数据库错误可能发生在任何人身上,但处理起来却令人沮丧。 为了让您的生活更简单,了解可能出现的最常见问题以及每个问题可能的解决方案会有所帮助。 让我们看一下典型的 MySQL 问题的五个示例。
1.建立数据库连接错误
如果您在尝试访问您的网站时遇到“建立数据库连接时出错”之类的消息,这可能意味着您的 URL 指向错误的数据库或您的网站遇到连接错误。
数据库连接错误意味着您将无法访问您的网站。 您也可能会被阻止登录您的管理面板。 在这种情况下,您的wp-config.php文件很可能是罪魁祸首。
解决此问题的第一种方法是访问您网站的托管帐户并恢复最近的备份。 这将重置您的wp-config.php文件,让您可以访问您的管理面板。 但是,如果无法访问您网站的备份,还有另一种解决方案。
您还可以使用 FileZilla 等安全文件传输协议 (SFTP) 应用程序编辑wp-config.php文件。 连接到您的网站后,您的wp-config.php文件可以在您网站文件的根目录中找到。
如果打开该文件,您会在顶部附近看到所有数据库信息。 然后,您可以检查您的数据库名称、用户名或有关您站点的任何其他信息是否有误。
如果您不确定该信息应包括哪些内容,您可能需要联系您的房东。 您将主要关心验证正确的“DB_USER”、“DB_PASSWORD”和“DB_HOST”。 完成必要的更正后,请务必保存更改并将文件上传回您站点的服务器。
2.错误#1005
#1005 错误是服务器端问题,而不是您站点的问题。 它发生在无法创建必要的表时。 根据消息字符串的详细信息,您可能会获得有关错误原因的更多信息。
例如,您的错误消息可能如下所示:
无法创建表“%s”(错误号:%d)
此特定问题最常见的“errno”是“(errno: 150)”。 这意味着存在外键约束问题。 换句话说,您尝试创建的表很可能与集合约束冲突。 该错误是为了防止多个表之间的数据出现不一致。
为了解决外键约束错误,您需要做一些调查并检查数据库表是否存在不一致。 这意味着您需要:
- 确保涉及的表都引用相同的数据库引擎。
- 检查以验证您正在编制索引的字段是否都具有相同的类型或长度。
此错误通常涉及简单的不一致,只需要一点时间和耐心来纠正。
3.错误#1213
下一个错误通常会出现在“ER_LOCK_DEADLOCK”符号旁边。 您还应该收到如下所示的消息:“尝试获取锁时发现死锁; 尝试重新启动交易”。 幸运的是,这是一个带有说明的错误,您可以使用它来快速解决它。
当您执行遇到死锁的事务时,您的事务将停止并回滚。 这是由于 SQL 命令停止了事务并撤消了它所做的任何更改。 您可以将此视为自动“撤消”功能,使您的应用程序能够停止并采取纠正措施。
在这种情况下,您只需要再次运行交易。 回滚将释放触发死锁的锁,事务现在应该成功完成。
4.错误#1064
如果您收到 #1064 错误,您还会看到一个显示为“ER_PARSE_ERROR”的符号。 这意味着您的语法有误。 这可能是由于拼写错误或使用了过时的命令。
您还应该收到一条包含一些有用信息的消息,例如:
在 %d 行的“%s”附近的 %s
这会将您定向到查询中的近似行,您可以参考它来定位和修复语法错误。 也有一些在线工具可以帮助您发现特别长的查询中的错误。
5. 错误#2003
最后,当您无法连接到 MySQL 服务器时,会出现 #2003 错误。 错误符号将指示主机连接问题:
CR_CONN_HOST_ERROR
换句话说,此错误消息让您知道您的网络连接已被拒绝。 解决问题的第一步是确定 MySQL 服务器是否正在运行。 接下来,您需要确保您指定的网络连接和端口与您在服务器上配置的相同。
您可以通过 phpMyAdmin 面板执行此操作,方法是转到状态 > 监控并查看服务器上的活动以查找问题。 如果您的服务器没有运行,您还需要完成重新启动它的步骤。
如果您的 mysqld 进程正在运行,您将需要对服务器与网络的连接有更深入的了解,以便您可以开始处理可能的连接中断。
使用 WP Engine 提升您的知识水平
虽然不是每个人都会定期花时间在他们网站的 MySQL 服务器上,但了解在遇到错误时去哪里寻求帮助是很有用的。 这就是了解在何处可以在线找到最佳建议和开发人员资源的原因。
为了帮助您始终保持站点平稳运行,我们提供了多种托管解决方案和工具。 这包括 WP Engine 错误日志,它可以帮助您为访问者提供最好的数字体验!