MySQL Workbench 手册  /  MySQL Workbench 常见问题解答

附录 A MySQL Workbench 常见问题解答

常见问题解答类别

基本用法

A.1. 什么是 MySQL 连接?为什么我可能需要创建多个连接?
A.2. MySQL Workbench 是否支持 TLSv1.2 协议?
A.3. 如何在 MySQL Workbench 中创建 MySQL 数据库(模式)?
A.4. 是否有一种简单的方法可以选择表中的所有数据,然后查看结果?

A.1.

什么是 MySQL 连接?为什么我可能需要创建多个连接?

MySQL 连接将 Workbench 连接到 MySQL 服务器。然后,在 Workbench 中执行的大多数操作都针对已连接的 MySQL 服务器执行。每个 MySQL 连接都包含其自己的定义集,因此您可以在 Workbench 中定义多个 MySQL 连接。例如,连接可能连接到不同的 MySQL 服务器,或同一个 MySQL 服务器但使用不同的用户名,或为一个连接启用 SSL,或者您可能使用 SSH 选项设置了连接到远程 MySQL 服务器(在您的 Web 主机上?),等等。

至于对同一个本地 MySQL 服务器的多个连接,您可能有一个连接使用“root”,另一个连接使用权限较低的用户。根据您设置用户的方式,他们可能(或可能不)都具有查看和使用相同数据库(信息)的权限。例如,您可以使用 Workbench 配置和使用您用于 Web 应用程序的权限较低的用户。

总之,连接只是连接到 MySQL 服务器。如果两个连接使用完全相同的信息,那么 Workbench 中的结果应该相同,尽管这不是常见的用例。有关 MySQL Workbench 中 MySQL 连接的更多信息,请参阅 第 5 章,MySQL Workbench 中的连接

A.2.

MySQL Workbench 是否支持 TLSv1.2 协议?

由于 TLSv1.2 需要 OpenSSL,因此对于 MySQL Workbench 商业版,支持此协议,但不支持社区版(它使用 yaSSL 编译并仅支持 TLSv1.1)。

A.3.

如何在 MySQL Workbench 中创建 MySQL 数据库(模式)?

  • 打开 MySQL 连接以打开 SQL 编辑器。

  • 在左侧窗格中有一个对象浏览器,其中包含两个名为 管理模式 的选项卡。选择模式选项卡(默认)。

  • 模式 窗格中右键单击任意位置,然后从上下文菜单中选择 创建模式

  • 按照模式创建向导的指示为新模式命名,然后单击 应用 以创建新模式。

其他选项包括单击主导航栏上的“创建模式”图标,或在 SQL 编辑器中执行“CREATE SCHEMA your_db_name”查询。

A.4.

是否有一种简单的方法可以选择表中的所有数据,然后查看结果?

从模式导航器中,将鼠标悬停在表上,然后单击 图标。这将执行“SELECT * FROM schema.table”查询并将结果加载到结果网格中。从那里您可以查看或编辑数据。

或者,右键单击表,然后从上下文菜单中选择 选择行 - 限制 1000

Workbench 功能

A.1. 如何使用 SSL 证书向导为我的 MySQL 服务器和 MySQL 客户端同时启用 SSL?
A.2. 如何将 Workbench 中保存的 MySQL 连接复制到另一台计算机?
A.3. 如何查看我的 MySQL Workbench 查询历史记录?
A.4. 我可以保留结果选项卡,而不是每次执行语句时都刷新它吗?
A.5. 嵌入式 Web 浏览器功能如何工作?例如,单击主屏幕上的 Workbench 论坛将在其自己的嵌入式 MySQL Workbench 选项卡中打开论坛。
A.6. MySQL Workbench 如何提高导入性能?

A.1.

如何使用 SSL 证书向导为我的 MySQL 服务器和 MySQL 客户端同时启用 SSL?

执行向导以生成 SSL 证书,然后相应地修改您的 MySQL 服务器的配置文件(my.cnfmy.ini)。您可以从生成的 sample-my.cnf 示例文件中复制粘贴 SSL 选项的条目。接下来,确认 SSL CA 文件CERT 文件密钥文件 值在您的 MySQL 连接的 SSL 选项卡中正确设置。将 使用 SSL 设置为 需要(推荐)或 如果可用,然后执行 测试连接。这应该报告 SSL 已启用。

失败的 SSL 连接记录在 MySQL Workbench 日志文件中。有关日志文件位置的更多信息,请参阅 第 3.3 节,“MySQL Workbench 设置和日志文件”

有关更多信息,请参阅 第 5.3.5 节,“SSL 向导(证书)”

A.2.

如何将 Workbench 中保存的 MySQL 连接复制到另一台计算机?

从主导航菜单中,选择 工具配置,然后选择 备份连接 以创建包含您配置的 MySQL 连接的 Zip 文件。接下来,使用相关的 还原连接 选项将此文件加载到您的新 Workbench 实例中。

A.3.

如何查看我的 MySQL Workbench 查询历史记录?

在底部窗格中,将 操作输出 更改为 历史记录,然后选择相应的日期。

SQL 语句历史记录以纯文本形式存储在您的系统上,位于您的 用户's MySQL Workbench 配置路径 中的 sql_history 目录中。这些文件按日期组织(例如 2014-01-15),并包含所有 MySQL 连接的 MySQL Workbench SQL 语句历史记录。

A.4.

我可以保留结果选项卡,而不是每次执行语句时都刷新它吗?

是的,您可以固定结果选项卡以强制它保持不变,不受 UPDATE 和其他语句的影响。为此,请右键单击结果选项卡,然后从上下文菜单中选择“固定选项卡”,或左键单击小别针图标以切换它。现在,执行其他查询,然后刷新固定选项卡(结果网格的菜单中有一个“刷新”图标)。

A.5.

嵌入式 Web 浏览器功能如何工作?例如,单击主屏幕上的 Workbench 论坛 将在其自己的嵌入式 MySQL Workbench 选项卡中打开论坛。

在 macOS 上使用 Webkit 系统库,在 Windows 上使用 Internet Explorer,而 Linux 在外部打开默认浏览器而不是嵌入式浏览器。按下 修饰键 + 箭头 可向前和向后移动浏览器历史记录。

A.6.

MySQL Workbench 如何提高导入性能?

当模型导出(数据库正向工程...)时,一些 MySQL 服务器变量会暂时设置为启用服务器更快地进行 SQL 导入。在代码开头添加的语句如下

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

这些语句的功能如下

  • SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;: 确定 InnoDB 是否执行重复键检查。对于大型数据集,如果未执行此检查,则导入速度会快得多。有关更多信息,请参阅 unique_checks

  • SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;: 确定服务器在定义外键时是否应检查引用表是否存在。由于可能存在循环引用,因此必须在导入期间关闭此检查,以允许定义外键。有关更多信息,请参阅 foreign_key_checks

  • SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';: 将 SQL_MODE 设置为 TRADITIONAL,使服务器在更严格的模式下运行,以及 ALLOW_INVALID_DATES,使日期不完全验证。

然后,使用以下语句在脚本末尾重置这些服务器变量

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Workbench 行为

A.1. 为什么我的查询结果有时显示为只读,而其他时候我可以在结果网格中编辑数据?
A.2. 我正在尝试执行 DELETE 查询,但查询失败并出现“错误代码:1175”错误。如何继续?
A.3. 我的 MySQL 服务器连接超时并出现类似“错误代码:2013。查询期间与 MySQL 服务器断开连接”的错误。我可以调整超时时间吗?
A.4. MySQL Workbench 表编辑器中的列标志缩写(PK、NN、UQ、BIN、UN、ZF、AI、G)是什么意思?

A.1.

为什么我的查询结果有时显示为 只读,而其他时候我可以在结果网格中编辑数据?

查询结果网格中的数据只有在查询结果包含主键时才可编辑。例如,SELECT type FROM food 如果 type 不是主键,则为只读,但 SELECT id, type FROM food 如果 id 是主键,则可编辑。通常,Workbench 中使用 SELECT * 语法,其中通常包含具有主键的查询结果。

有关更多信息,将鼠标指针移到 只读 图标上以显示一个解释结果集处于只读模式的原因的工具提示。

A.2.

我试图执行一个 DELETE 查询,但查询失败并出现“错误代码:1175”错误。我该怎么办?

默认情况下,Workbench 配置为不执行在 KEY 列上没有 WHERE 子句的 DELETE 或 UPDATE 查询。要更改此行为,请打开 Workbench 的 首选项,选择 SQL 编辑器 部分,然后禁用以下首选项

[ ]“安全更新”。禁止没有 WHERE 子句中的键或没有 LIMIT 子句的 UPDATE 和 DELETE。

更改此首选项需要重新连接到 MySQL 服务器,才能生效。

A.3.

我的 MySQL 服务器连接超时,并出现类似“错误代码:2013. 查询期间与 MySQL 服务器连接丢失”的错误。我可以调整超时吗?

是的,转到 首选项SQL 编辑器,并调整 DBMS 连接读取超时 选项,该选项默认为 600 秒。这将设置查询在 MySQL Workbench 断开与 MySQL 服务器的连接之前可以花费的最长时间(以秒为单位)。

A.4.

MySQL Workbench 表编辑器 中的列标记首字母缩写(PK、NN、UQ、BIN、UN、ZF、AI、G)是什么意思?

选中这些复选框将通过将选中的约束分配给指定的列来更改表列。

将指针移到首字母缩写上以查看描述,并参见 第 8.1.10.2 节,“列选项卡” 以及 CREATE TABLE 文档以获取更多详细信息。

数据管理

A.1. 如何使用 Workbench 将逗号分隔值 (CSV) 数据导入 MySQL?
A.2. 如何将 MySQL 数据导出到以 CSV、JSON 或 XML 等格式的纯文本文件?
A.3. 如何将 MySQL 数据库导出(保存)到文本文件?

A.1.

如何使用 Workbench 将逗号分隔值 (CSV) 数据导入 MySQL?

将 CSV 数据导入新的或现有的 表数据导入 向导将可配置的 CSV 数据导入新的或现有的表。此选项在 MySQL Workbench 6.3 中添加。

将 CSV 数据导入 结果集从外部文件导入记录 向导将 CSV 数据直接导入结果集视图。

或者,数据导入 向导将保存的 MySQL 文件导入到 MySQL 服务器。有关更多信息,请参见 第 6.5 节,“数据导出和导入”

A.2.

如何将 MySQL 数据导出到以 CSV、JSON 或 XML 等格式的纯文本文件?

Workbench 中的结果视图面板有一个“将记录集导出到外部文件”选项,该选项可以将结果集导出为各种格式。有关更多信息,请参见 导出结果集

注意

这与将 MySQL 数据导出到标准 MySQL 格式的 数据导出 向导不同。有关该内容的更多信息,请参见 第 6.5 节,“数据导出和导入”

A.3.

如何将 MySQL 数据库导出(保存)到文本文件?

打开一个 MySQL 连接,从主导航菜单中选择 服务器,然后选择 数据导出 打开数据导出向导。或者,从左侧管理窗格中选择 数据导出 以进行所需的 MySQL 选择。

在这里,您可以选择要导出的数据库、是否包含数据、转储到单个文件还是多个文件(每个表一个文件)等等。有关更多详细信息,请参见 第 6.5 节,“数据导出和导入”

常规

A.1. 我被迫使用 MySQL Workbench 5.2.x,其文档是否可用?

A.1.

我被迫使用 MySQL Workbench 5.2.x,其文档是否可用?

虽然 5.2.x 分支不再维护,但其文档已存档在 https://dev.mysqlserver.cn/doc/index-archive.html 中。