Documentation Home
MySQL 8.0 参考手册  / 第 6 章 安全  / 6.4 安全组件和插件  / 6.4.7 MySQL 企业防火墙  /  6.4.5.2 安装或卸载 MySQL 企业防火墙

6.4.5.2 安装或卸载 MySQL 企业防火墙

MySQL Enterprise Firewall 安装是一种一次性操作,它安装第 6.4.5.1 节,“MySQL Enterprise Firewall的元素”中描述的元素。可以使用图形界面或手动执行安装:

  • 在 Windows 上,MySQL Installer 包含一个为您启用 MySQL Enterprise Firewall 的选项。

  • MySQL Workbench 6.3.4 或更高版本可以安装 MySQL Enterprise Firewall,启用或禁用已安装的防火墙,或者卸载防火墙。

  • 手动 MySQL Enterprise Firewall 安装涉及运行位于shareMySQL 安装目录中的脚本。

笔记

如果安装,MySQL Enterprise Firewall 会涉及一些最小的开销,即使在禁用时也是如此。为避免这种开销,请不要安装防火墙,除非您打算使用它。

笔记

MySQL Enterprise Firewall 不与查询缓存一起工作。如果启用了查询缓存,请在安装防火墙之前将其禁用(请参阅第 8.10.3.3 节,“查询缓存配置”)。

有关使用说明,请参阅第 6.4.5.3 节,“使用 MySQL 企业防火墙”。有关参考信息,请参阅 第 6.4.5.4 节,“MySQL 企业防火墙参考”

安装 MySQL 企业防火墙

如果已经从旧版本的 MySQL 安装了 MySQL Enterprise Firewall,请使用本节后面给出的说明将其卸载,然后在安装当前版本之前重新启动服务器。在这种情况下,还需要重新注册您的配置。

在 Windows 上,您可以使用 MySQL Installer 安装 MySQL Enterprise Firewall, 如图 6.2 “Windows 上的 MySQL Enterprise Firewall 安装”所示。选中启用 MySQL 企业防火墙复选框。(Open Firewall port for network access有不同的用途。它指的是 Windows 防火墙,控制 Windows 是否阻止 MySQL 服务器侦听客户端连接的 TCP/IP 端口。)

图 6.2 Windows 上的 MySQL 企业防火墙安装

内容在周围的文字中描述。

要使用 MySQL Workbench 6.3.4 或更高版本安装 MySQL Enterprise Firewall,请参阅 MySQL Enterprise Firewall Interface

要手动安装 MySQL Enterprise Firewall,请查看 shareMySQL 安装目录并选择适合您平台的脚本。可用脚本的不同之处在于用于引用插件库文件的后缀:

  • win_install_firewall.sql:选择此脚本用于 Windows 系统 .dll用作文件名后缀。

  • linux_install_firewall.sql: 选择此脚本用于 Linux 和类似的系统 .so用作文件名后缀。

安装脚本在默认数据库中创建存储过程,因此选择要使用的数据库。然后按如下方式运行脚本,在命令行上命名所选的数据库。这里的示例使用mysql 系统数据库和 Linux 安装脚本。为您的系统进行适当的替换。

$> mysql -u root -p mysql < linux_install_firewall.sql
Enter password: (enter root password here)

使用图形界面或手动安装 MySQL Enterprise Firewall 应该启用防火墙。要验证这一点,请连接到服务器并执行以下语句:

mysql> SHOW GLOBAL VARIABLES LIKE 'mysql_firewall_mode';
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| mysql_firewall_mode | ON    |
+---------------------+-------+

如果插件无法初始化,请检查服务器错误日志以获取诊断消息。

卸载 MySQL 企业防火墙

可以使用 MySQL Workbench 或手动卸载 MySQL Enterprise Firewall。

要使用 MySQL Workbench 6.3.4 或更高版本卸载 MySQL Enterprise Firewall,请参阅 第 25 章MySQL Workbench中的 MySQL Enterprise Firewall Interface

要手动卸载 MySQL Enterprise Firewall,请执行以下语句。使用语句IF EXISTS 是因为,根据以前安装的防火墙版本,某些对象可能不存在。

DROP TABLE IF EXISTS mysql.firewall_users;
DROP TABLE IF EXISTS mysql.firewall_whitelist;

UNINSTALL PLUGIN MYSQL_FIREWALL;
UNINSTALL PLUGIN MYSQL_FIREWALL_USERS;
UNINSTALL PLUGIN MYSQL_FIREWALL_WHITELIST;

DROP FUNCTION IF EXISTS mysql_firewall_flush_status;
DROP FUNCTION IF EXISTS normalize_statement;
DROP FUNCTION IF EXISTS read_firewall_users;
DROP FUNCTION IF EXISTS read_firewall_whitelist;
DROP FUNCTION IF EXISTS set_firewall_mode;

DROP PROCEDURE IF EXISTS mysql.sp_reload_firewall_rules;
DROP PROCEDURE IF EXISTS mysql.sp_set_firewall_mode;