MySQL企业防火墙的安装是一次性操作,安装中描述的元素第6.7.1节,“MySQL企业防火墙的要素”。安装可以使用图形界面或手动执行:
在Windows上,MySQL安装程序包含一个选项,为您启用MySQL企业防火墙。
MySQL Workbench 6.3.4或更高版本可以安装MySQL企业防火墙,启用或禁用已安装的防火墙,或卸载防火墙。
手动安装MySQL企业防火墙需要运行位于
分享
MySQL安装目录。
在遵循它的说明之前阅读整个部分。该过程的部分根据您的环境而有所不同。
如果安装了MySQL企业防火墙,即使在禁用的情况下,也会有一些最小的开销。为了避免这种开销,除非计划使用防火墙,否则不要安装防火墙。
使用说明请参见第6.7.3节,“使用MySQL企业防火墙”。有关参考信息,请参见第6.7.4节“MySQL企业防火墙参考”。
如果MySQL企业防火墙已经从旧版本的MySQL安装,请使用本节稍后给出的说明卸载它,然后在安装当前版本之前重新启动服务器。在这种情况下,还需要再次注册您的配置。
在Windows操作系统下,可以使用MySQL安装程序安装MySQL企业防火墙,如图所示图6.2,“MySQL企业防火墙安装在Windows上”。检查启用MySQL企业防火墙复选框。(打开防火墙端口,用于网络访问有不同的目的。它指的是Windows防火墙,控制Windows是否阻止MySQL服务器监听客户端连接的TCP/IP端口。)
有一个问题MySQL 8.0.19安装使用MySQL安装程序,防止服务器启动,如果在服务器配置步骤中选择了MySQL企业防火墙。如果服务器启动失败,请单击
结束配置过程并返回仪表板。必须卸载服务器。解决方案是在没有选择MySQL企业防火墙的情况下运行MySQL安装程序。(即不选择启用MySQL企业防火墙复选框)。然后使用本节后面的手动安装说明安装MySQL企业防火墙。这个问题在MySQL 8.0.20中被纠正。
使用MySQL Workbench 6.3.4或更高版本安装MySQL企业防火墙,请参见MySQL企业防火墙接口。
要手动安装MySQL企业防火墙,请查看分享
目录,并选择适合您的平台的脚本。可用的脚本不同之处在于用于引用插件库文件的后缀:
win_install_firewall.sql
:适用于Windows系统. dll
作为文件名后缀。linux_install_firewall.sql
:为Linux和使用的类似系统选择这个脚本所以
作为文件名后缀。
安装脚本在默认数据库中创建存储过程,因此选择要使用的数据库。然后按如下方式运行脚本,在命令行上命名所选的数据库。这里的示例使用mysql
系统数据库和Linux安装脚本。对您的系统进行适当的替换。
Shell > mysql -u root -p mysql < linux_install_firewall。sql输入密码:(在这里输入root密码)
要在源/副本复制、组复制或InnoDB集群环境中使用MySQL企业防火墙,必须在源节点上运行安装脚本之前准备好复制节点。这是必要的,因为安装插件
脚本中的语句不会被复制。
在每个复制节点上,提取
安装插件
语句,并手动执行它们。在源节点上,按照前面描述的那样运行安装脚本。
使用图形界面或手动安装MySQL企业防火墙都应该启用防火墙。要验证这一点,请连接到服务器并执行以下语句:
mysql>显示全局变量如mysql_firewall_mode;+---------------------+-------+ | Variable_name |值 | +---------------------+-------+ | mysql_firewall_mode |上 | +---------------------+-------+
如果插件初始化失败,请检查服务器错误日志中的诊断消息。
MySQL企业防火墙可以通过MySQL Workbench卸载,也可以手动卸载。
使用MySQL Workbench 6.3.4或更高版本卸载MySQL企业防火墙,请参见MySQL企业防火墙接口,在MySQL工作台。
手动卸载MySQL企业防火墙,请执行以下语句。语句使用如果存在
因为,根据以前安装的防火墙版本,一些对象可能不存在,或者可能通过卸载安装它们的插件而被隐式删除。
mysql.firewall_group_allowlist删除表删除mysql.firewall_groups表DROP TABLE IF EXISTS mysql.firewall_member;删除mysql.firewall_users表DROP TABLE IF EXISTS mysql.firewall_whitelist;卸载插件MYSQL_FIREWALL;卸载插件MYSQL_FIREWALL_USERS;卸载插件MYSQL_FIREWALL_WHITELIST;DROP FUNCTION IF EXISTS firewall_group_delist;DROP FUNCTION IF EXISTS firewall_group_enlist; DROP FUNCTION IF EXISTS mysql_firewall_flush_status; DROP FUNCTION IF EXISTS normalize_statement; DROP FUNCTION IF EXISTS read_firewall_group_allowlist; DROP FUNCTION IF EXISTS read_firewall_groups; DROP FUNCTION IF EXISTS read_firewall_users; DROP FUNCTION IF EXISTS read_firewall_whitelist; DROP FUNCTION IF EXISTS set_firewall_group_mode; DROP FUNCTION IF EXISTS set_firewall_mode; DROP PROCEDURE IF EXISTS mysql.sp_firewall_group_delist; DROP PROCEDURE IF EXISTS mysql.sp_firewall_group_enlist; DROP PROCEDURE IF EXISTS mysql.sp_reload_firewall_group_rules; DROP PROCEDURE IF EXISTS mysql.sp_reload_firewall_rules; DROP PROCEDURE IF EXISTS mysql.sp_set_firewall_group_mode; DROP PROCEDURE IF EXISTS mysql.sp_set_firewall_group_mode_and_user; DROP PROCEDURE IF EXISTS mysql.sp_set_firewall_mode;