MySQL Enterprise Firewall installation is a one-time operation that installs the elements described in Section 184.108.40.206, “Elements of MySQL Enterprise Firewall”. Installation can be performed using a graphical interface or manually:
On Windows, MySQL Installer includes an option to enable MySQL Enterprise Firewall for you.
MySQL Workbench 6.3.4 or higher can install MySQL Enterprise Firewall, enable or disable an installed firewall, or uninstall the firewall.
Manual MySQL Enterprise Firewall installation involves running a script located in the
sharedirectory of your MySQL installation.
If installed, MySQL Enterprise Firewall involves some minimal overhead even when disabled. To avoid this overhead, do not install the firewall unless you plan to use it.
MySQL Enterprise Firewall does not work together with the query cache. If the query cache is enabled, disable it before installing the firewall (see Section 220.127.116.11, “Query Cache Configuration”).
For usage instructions, see Section 18.104.22.168, “Using MySQL Enterprise Firewall”. For reference information, see Section 22.214.171.124, “MySQL Enterprise Firewall Reference”.
If MySQL Enterprise Firewall is already installed from an older version of MySQL, uninstall it using the instructions given later in this section and then restart your server before installing the current version. In this case, it is also necessary to register your configuration again.
On Windows, you can use MySQL Installer to install MySQL Enterprise Firewall, as shown in Figure 6.2, “MySQL Enterprise Firewall Installation on Windows”. Check the Enable MySQL Enterprise Firewall check box. (Open Firewall port for network access has a different purpose. It refers to Windows Firewall and controls whether Windows blocks the TCP/IP port on which the MySQL server listens for client connections.)
To install MySQL Enterprise Firewall using MySQL Workbench 6.3.4 or higher, see MySQL Enterprise Firewall Interface.
To install MySQL Enterprise Firewall manually, look in the
share directory of your MySQL
installation and choose the script that is appropriate for
your platform. The available scripts differ in the suffix used
to refer to the plugin library file:
win_install_firewall.sql: Choose this script for Windows systems that use
.dllas the file name suffix.
linux_install_firewall.sql: Choose this script for Linux and similar systems that use
.soas the file name suffix.
The installation script creates stored procedures in the
default database, so choose a database to use. Then run the
script as follows, naming the chosen database on the command
line. The example here uses the
system database and the Linux installation script. Make the
appropriate substitutions for your system.
$> mysql -u root -p mysql < linux_install_firewall.sql Enter password: (enter root password here)
Installing MySQL Enterprise Firewall either using a graphical interface or manually should enable the firewall. To verify that, connect to the server and execute this statement:
mysql> SHOW GLOBAL VARIABLES LIKE 'mysql_firewall_mode'; +---------------------+-------+ | Variable_name | Value | +---------------------+-------+ | mysql_firewall_mode | ON | +---------------------+-------+
If the plugin fails to initialize, check the server error log for diagnostic messages.
MySQL Enterprise Firewall can be uninstalled using MySQL Workbench or manually.
To uninstall MySQL Enterprise Firewall manually, execute the following
statements. Statements use
because, depending on the previously installed firewall
version, some objects might not exist.
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;