# 通过 phpMyAdmin 访问您的数据库

Source: https://support.kapsulehost.com/zh-cn/sites-phpmyadmin

每个拥有数据库的 KapsuleHost 网站都可以通过 phpMyAdmin 获得基于浏览器的数据库访问权限,该访问通过单点登录打开,因此无需保留第二个密码。本指南将介绍如何打开它、如何查看连接详情、哪些操作值得在其中进行,以及在 WordPress 网站上绝不应在 phpMyAdmin 中执行的两项数据库操作。

## 打开 phpMyAdmin

1. 登录 [KPanel](https://kpanel.kapsulehost.com),点击左侧边栏中的**网站**。
2. 点击您的网站。
3. 在该网站自己的菜单中,打开**数据库**。
4. 点击**打开 phpMyAdmin**。

phpMyAdmin 会在新标签页中打开,已自动登录并指向您网站的数据库。无需登录表单,也无需存储单独的凭据。

![KPanel 中某网站数据库标签页上的“打开 phpMyAdmin”按钮](https://support.kapsulehost.com/help/screenshots/sites-phpmyadmin.84df4ba6.webp)

> **Note:** 如果页面显示未为此网站类型配置数据库,这属于正常情况。静态 HTML 网站和某些应用类型在创建时本来就没有数据库。使用数据库的网站类型,包括 WordPress 和 WooCommerce,则始终配有数据库。

## 您的连接详情

同一屏幕会显示您应用程序所使用的凭据,每项都带有复制按钮,密码则隐藏在显示控件之后:

| 字段 | 值 |
|---|---|
| 主机 | `127.0.0.1` |
| 端口 | `3306` |
| 数据库 | 您的数据库名称 |
| 用户名 | 您的数据库用户 |
| 密码 | 点击显示之前为隐藏状态 |

这些就是应填入 `wp-config.php`、`.env` 文件或任何框架的数据库配置中的值。

> **Warning:** `127.0.0.1` 的意思是“本服务器”。它无法从您的笔记本电脑访问,无论如何配置防火墙都无法改变这一点:按照设计,该数据库根本不会监听公网地址。若要用 TablePlus 或 Sequel Ace 等桌面客户端连接,请通过 SSH 建立隧道。请参阅[通过 SSH 隧道连接您的数据库](https://support.kapsulehost.com/zh-cn/database-ssh-tunnel)。

## 使用场景

phpMyAdmin 在以下这些特定工作中确实有其用武之地:

- **读取数据。**确认某个插件实际存储了什么内容,检查某行记录是否存在,统计记录数量。
- 在迁移或恢复过程中**导入数据库**。
- **导出数据库**,作为额外的安全副本,或交给开发人员使用。
- **修复单个损坏的值**,例如被错误输入、导致您无法登录 wp-admin 的 `siteurl`。
- **诊断体积问题。**按大小对表排序,可以立即看出日志表或临时数据表是否已经失控增长。

## 导入数据库

1. 从数据库标签页打开 phpMyAdmin。
2. 在左侧面板中点击您的数据库名称。
3. 点击顶部的**导入**。
4. 选择 `.sql` 文件,然后点击**执行**。

导入操作会替换匹配的表,而不是合并数据。

> **Important:** 在正在使用的数据库上执行导入具有破坏性且立即生效。匹配表中的每一行都会被文件中的内容替换,且 phpMyAdmin 内部没有撤销功能。请先在网站的**备份**页面中进行备份:[创建备份](https://support.kapsulehost.com/zh-cn/taking-a-backup)。

对于较大的转储文件,请先压缩为 `.sql.gz`,phpMyAdmin 支持该格式,通常也能将文件大小压缩到上传限制以下。如果文件仍然过大,可按表拆分为多个文件,或提交工单,由我们在服务器端为您完成导入。

## 导出数据库

1. 在左侧面板中点击您的数据库名称。
2. 点击**导出**。
3. 若需直接复制,选择 **Quick** 并采用 SQL 格式即可。如果需要特定的表,或希望输出经过 gzip 压缩,请选择 **Custom**。
4. 点击**执行**。

phpMyAdmin 导出的文件是一份有用的额外副本,而非备份策略。它仅捕获数据库本身,不包含您的文件,且保存在您所选择的位置。您的网站每天都会自动将两者一起备份,您也可以随时手动创建备份:[创建备份](https://support.kapsulehost.com/zh-cn/taking-a-backup)。

## 这两件事请勿在此操作

### 请勿使用 SQL 执行搜索和替换

WordPress 将插件和主题设置存储为 PHP 序列化字符串,其中记录了每个值的长度。`REPLACE()` 查询会改变文本内容却不会更新所记录的长度,导致 PHP 无法再读取该选项,并悄悄将其还原为空。于是主题设置消失、滑块内容清空、许可证被注销。

请使用网站 **WordPress** 标签页中的**搜索和替换**卡片,它能正确处理序列化问题,并会先创建备份。完整说明请参阅:[执行搜索和替换](https://support.kapsulehost.com/zh-cn/wordpress-search-replace)。

### 请勿通过编辑 wp_users 来重置密码

较旧的教程会让您在 phpMyAdmin 下拉菜单中使用 `MD5` 函数来设置 `user_pass`。现代 WordPress 不再使用 MD5 哈希,一旦操作有误,账户将被锁定而不是被重置。

KPanel 在网站的 **WordPress** 标签页下的**用户**部分提供了专门的工具:可直接使用**以此身份登录**登录、发送重置邮件,或复制重置链接自行发送。请参阅[重置丢失的 WordPress 管理员密码](https://support.kapsulehost.com/zh-cn/wordpress-reset-password)。

## KPanel 中的 WordPress 数据库工具

对于日常的 WordPress 数据库操作,**WordPress** 标签页下的**数据库**部分比 phpMyAdmin 更安全、更快捷。它可以让您一目了然地查看表大小,在自动先创建备份的前提下进行优化和修复,将旧表转换为现代存储引擎,还能一键清理文章修订版本、自动草稿、过期的临时数据以及已放入回收站的文章。搜索和替换功能则位于相邻的**快速操作**部分。

需要查看原始数据行时,请使用 phpMyAdmin。需要修改内容时,请使用数据库部分。

## 疑难排解

**phpMyAdmin 无法打开。**该按钮需要对网站具有写入权限。如果您的 KapsuleHost 账户角色为只读,请联系账户所有者。如果您拥有写入权限但仍然失败,该网站可能仍在配置中:请查看网站顶部的状态指示标签。

**我无法用数据库标签页上的信息从笔记本电脑连接。**这是正确且刻意为之的设计。该数据库不会对外公开暴露。请使用 SSH 隧道:[通过 SSH 隧道连接您的数据库](https://support.kapsulehost.com/zh-cn/database-ssh-tunnel)。

**导入过程中止且没有报错。**几乎总是文件大小的问题。请将其压缩为 gzip 格式或进行拆分。

**我修改了一个值,结果网站出错了。**请从最近的备份中恢复:[从备份中恢复](https://support.kapsulehost.com/zh-cn/restoring-from-backup)。这正是为何务必先创建备份的原因。

**数据表体积变得异常庞大。**在 phpMyAdmin 中按大小排序以找出问题所在,然后从 **WordPress** 标签页的**数据库**部分进行清理,而不要手动删除数据行。
