Chapter 3 MySQL Notifier

Table of Contents

3.1 MySQL Notifier Usage
3.2 Setting Up Remote Monitoring in MySQL Notifier

MySQL Notifier is a tool that enables you to monitor and adjust the status of your local and remote MySQL server instances through an indicator that resides in the system tray. MySQL Notifier also gives quick access to MySQL Workbench through its context menu.

The MySQL Notifier is installed by MySQL Installer, and (by default) will start-up when Microsoft Windows is started.

To install, download and execute the MySQL Installer, be sure the MySQL Notifier product is selected, then proceed with the installation. See the MySQL Installer manual for additional details.

For notes detailing the changes in each release of MySQL Notifier, see the MySQL Notifier Release Notes.

Visit the MySQL Notifier forum for additional MySQL Notifier help and support.

Features include:

3.1 MySQL Notifier Usage

MySQL Notifier resides in the system tray and provides visual status information for your MySQL server instances. A green icon is displayed at the top left corner of the tray icon if the current MySQL server is running, or a red icon if the service is stopped.

MySQL Notifier automatically adds discovered MySQL services on the local machine, and each service is saved and configurable. By default, the Automatically add new services whose name contains option is enabled and set to mysql. Related Notifications Options include being notified when new services are either discovered or experience status changes, and are also enabled by default. And uninstalling a service will also remove the service from MySQL Notifier.

Clicking the system tray icon will reveal several options, as the follow figures show:

The Service Instance menu is the main MySQL Notifier window, and enables you to Stop, Start, and Restart the MySQL server.

Figure 3.1 MySQL Notifier Service Instance menu

MySQL Notifier Service Instance menu

The Actions menu includes several links to external applications (if they are installed), and a Refresh Status option to manually refresh the status of all monitored services (in both local and remote computers) and MySQL instances.

Note

The main menu will not show the Actions menu when there are no services being monitored by MySQL Notifier.

Figure 3.2 MySQL Notifier Actions menu

MySQL Notifier Actions menu

The Actions, Options menu configures MySQL Notifier and includes options to:

  • Use colorful status icons: Enables a colorful style of icons for the tray of MySQL Notifier.

  • Run at Windows Startup: Allows the application to be loaded when Microsoft Windows starts.

  • Automatically Check For Updates Every # Weeks: Checks for a new version of MySQL Notifier, and runs this check every # weeks.

  • Automatically add new services whose name contains: The text used to filter services and add them automatically to the monitored list of the local computer running MySQL Notifier, and on remote computers already monitoring Windows services.

  • Ping monitored MySQL Server instances every # seconds: The interval (in seconds) to ping monitored MySQL Server instances for status changes. Longer intervals might be necessary if the list of monitored remote instances is large.

  • Notify me when a service is automatically added: Will display a balloon notification from the taskbar when a newly discovered service is added to the monitored services list.

  • Notify me when a service changes status: Will display a balloon notification from the taskbar when a monitored service changes its status.

  • Automatic connections migration delayed until: When there are connections to migrate, postpone the migration by one hour, one day, one week, one month, or indefinitely.

Figure 3.3 MySQL Notifier Options menu

MySQL Notifier Options menu

The Actions, Manage Monitored Items menu enables you to configure the monitored services and MySQL instances. First, with the Services tab open:

Figure 3.4 MySQL Notifier Manage Services menu

MySQL Notifier Manage Services menu

The Instances tab is similar:

Figure 3.5 MySQL Notifier Manage Instances menu

MySQL Notifier Manage Instances menu

Adding a service or instance (after clicking Add in the Manage Monitored Items window) enables you to select a running Microsoft Windows service or instance connection, and configure MySQL Notifier to monitor it. Add a new service or instance by clicking service name from the list, then OK to accept. Multiple services and instances may be selected.

Figure 3.6 MySQL Notifier Adding new services

MySQL Notifier Adding new services

Add instances:

Figure 3.7 MySQL Notifier Adding new instances

MySQL Notifier Adding new instances

Troubleshooting

For issues that are not documented here, visit the MySQL Notifier Support Forum for MySQL Notifier help and support.

  • Problem: attempting to start/stop/restart a MySQL service might generate an error similar to "The Service MySQLVERSION failed the most recent status change request with the message "The service mysqlVERSION was not found in the Windows Services".

    Explanation: this is a case-sensitivity issue, in that the service name is MySQLVERSION compared to having mysqlVERSION in the configuration file.

    Solution: either update your MySQL Notifier configuration file with the correct information, or stop MySQL Notifier and delete this configuration file. The MySQL Notifier configuration file is located at %APPDATA%\Oracle\MySQL Notifier\settings.config where %APPDATA% is a variable and depends on your system. A typical location is "C:\Users\YourUsername\AppData\Running\Oracle\MySQL Notifier\settings.config" where YourUsername is your system's user name. In this file, and within the ServerList section, change the ServerName values from lowercase to the actual service names. For example, change mysqlVERSION to MySQLVERSION, save, and then restart MySQL Notifier. Alternatively, stop MySQL Notifier, delete this file, then restart MySQL Notifier.

  • Problem: when connecting to a remote computer for the purpose of monitoring a remote Windows service, the Add Service dialog does not always show all the services shown in the Windows Services console.

    Explanation: this behavior is governed by the operating system and the outcome is expected when working with nondomain user accounts. For a complete description of the behavior, see the User Account Control and WMI article from Microsoft.

    Solution: when the remote computer is in a compatible domain, it is recommended that domain user accounts are used to connect through WMI to a remote computer. For detailed setup instructions using WMI, see Section 3.2, “Setting Up Remote Monitoring in MySQL Notifier”.

    Alternatively, when domain user accounts are not available, Microsoft provides a less secure workaround that should only be implemented with caution. For more information, see the Description of User Account Control and remote restrictions in Windows Vista KB article from Microsoft.

3.2 Setting Up Remote Monitoring in MySQL Notifier

MySQL Notifier uses Windows Management Instrumentation (WMI) to manage and monitor services on remote computers. This section explains how it works and how to set up your system to monitor remote MySQL instances.

In order to configure WMI, it is important to understand that the underlying Distributed Component Object Model (DCOM) architecture is doing the WMI work. Specifically, MySQL Notifier is using asynchronous notification queries on remote Microsoft Windows hosts as .NET events. These events send an asynchronous callback to the computer running MySQL Notifier so it knows when a service status has changed on the remote computer. Asynchronous notifications offer the best performance compared to semisynchronous notifications or synchronous notifications that use timers.

Asynchronous notification requires the remote computer to send a callback to the client computer (thus opening a reverse connection), so the Windows Firewall and DCOM settings must be properly configured for the communication to function properly.

Figure 3.8 MySQL Notifier Distributed Component Object Model (DCOM)

MySQL Notifier Distributed Component Object Model (DCOM)

Most of the common errors thrown by asynchronous WMI notifications are related to Windows Firewall blocking the communication, or to DCOM / WMI settings not being set up properly. For a list of common errors with solutions, see Common Errors.

The following steps are required to make WMI function. These steps are divided between two machines. A single host computer that runs MySQL Notifier (Computer A), and multiple remote machines that are being monitored (Computer B).

Computer running MySQL Notifier (Computer A)

  1. Enable remote administration by either editing the Group Policy Editor, or using NETSH:

    Using the Group Policy Editor:

    1. Click Start, click Run, type GPEDIT.MSC, and then click OK.

    2. Under the Local Computer Policy heading, expand Computer Configuration.

    3. Expand Administrative Templates, then Network, Network Connections, and then Windows Firewall.

    4. If the computer is in the domain, then double-click Domain Profile; otherwise, double-click Standard Profile.

    5. Double-click Windows Firewall: Allow inbound remote administration exception to open a configuration window.

    6. Check the Enabled option button and then click OK.

    Using the NETSH command:

    Note

    The "netsh firewall" command is deprecated as of Microsoft Server 2008 and Vista, and replaced with "netsh advfirewall firewall".

    1. Open a command prompt window with Administrative rights (you can right-click the Command Prompt icon and select Run as Administrator).

    2. Execute the following command:

      NETSH advfirewall firewall set service RemoteAdmin enable
      
  2. Open the DCOM port TCP 135:

    1. Open a command prompt window with Administrative rights (you can right-click the Command Prompt icon and select Run as Administrator).

    2. Execute the following command:

      NETSH advfirewall firewall add rule name=DCOM_TCP135 protocol=TCP localport=135 dir=in action=allow
      
  3. Add the client application that contains the sink for the callback (MySqlNotifier.exe) to the Windows Firewall Exceptions List (use either the Windows Firewall configuration or NETSH):

    Using the Windows Firewall configuration:

    1. In the Control Panel, double-click Windows Firewall.

    2. In the Windows Firewall window's left panel, click Allow a program or feature through Windows Firewall.

    3. In the Allowed Programs window, click Change Settings and do one of the following:

      • If MySqlNotifier.exe is in the Allowed programs and features list, make sure it is checked for the type of networks the computer connects to (Private, Public or both).

      • If MySqlNotifier.exe is not in the list, click Allow another program....

        1. In the Add a Program window, select the MySqlNotifier.exe if it exists in the Programs list, otherwise click Browse... and go to the directory where MySqlNotifier.exe was installed to select it, then click Add.

        2. Make sure MySqlNotifier.exe is checked for the type of networks the computer connects to (Private, Public or both).

    Using the NETSH command:

    1. Open a command prompt window with Administrative rights (you can right-click the Command Prompt icon and click Run as Administrator).

    2. Execute the following command, where you change "[YOUR_INSTALL_DIRECTORY]":

      NETSH advfirewall firewall add rule name=MySqlNotifier program=[YOUR_INSTALL_DIRECTORY]\MySqlNotifier.exe action=allow dir=in
      
  4. If Computer B is either a member of WORKGROUP or is in a different domain that is untrusted by Computer A, then the callback connection (Connection 2) is created as an Anonymous connection. To grant Anonymous connections DCOM Remote Access permissions:

    1. Click Start, click Run, type DCOMCNFG, and then click OK.

    2. In the Component Services dialog box, expand Component Services, expand Computers, and then right-click My Computer and click Properties.

    3. In the My Computer Properties dialog box, click the COM Security tab.

    4. Under Access Permissions, click Edit Limits.

    5. In the Access Permission dialog box, select ANONYMOUS LOGON name in the Group or user names box. In the Allow column under Permissions for User, select Remote Access, and then click OK.

Monitored Remote Computer (Computer B)

If the user account that is logged on to the computer running the MySQL Notifier (Computer A) is a local administrator on the remote computer (Computer B), such that the same account is an administrator on Computer B, you can skip to the "Allow for remote administration" step.

Setting DCOM security to allow a non-administrator user to access a computer remotely:

  1. Grant "DCOM remote launch" and activation permissions for a user or group:

    1. Click Start, click Run, type DCOMCNFG, and then click OK.

    2. In the Component Services dialog box, expand Component Services, expand Computers, and then right-click My Computer and click Properties.

    3. In the My Computer Properties dialog box, click the COM Security tab.

    4. Under Launch and Activation Permission, click Edit Limits.

    5. In the Launch and Activation Permission dialog box, follow these steps if your name or your group does not appear in the Groups or user names list:

      1. In the Launch and Activation Permission dialog box, click Add.

      2. In the Select Users or Groups dialog box, add your name and the group in the Enter the object names to select box, and then click OK.

    6. In the Launch and Activation Permission dialog box, select your user and group in the Group or user names box. In the Allow column under Permissions for User, select Remote Launch, select Remote Activation, and then click OK.

    Grant DCOM remote access permissions:

    1. Click Start, click Run, type DCOMCNFG, and then click OK.

    2. In the Component Services dialog box, expand Component Services, expand Computers, and then right-click My Computer and click Properties.

    3. In the My Computer Properties dialog box, click the COM Security tab.

    4. Under Access Permissions, click Edit Limits.

    5. In the Access Permission dialog box, select ANONYMOUS LOGON name in the Group or user names box. In the Allow column under Permissions for User, select Remote Access, and then click OK.

  2. Allowing non-administrator users access to a specific WMI namespace:

    1. In the Control Panel, double-click Administrative Tools.

    2. In the Administrative Tools window, double-click Computer Management.

    3. In the Computer Management window, expand the Services and Applications tree.

    4. Right-click the WMI Control icon and select Properties.

    5. In the WMI Control Properties window, click the Security tab.

    6. In the Security tab, select the namespace and click Security. Root/CIMV2 is a commonly used namespace.

    7. Locate the appropriate account and check Remote Enable in the Permissions list.

  3. Allow for remote administration by either editing the Group Policy Editor or using NETSH:

    Using the Group Policy Editor:

    1. Click Start, click Run, type GPEDIT.MSC, and then click OK.

    2. Under the Local Computer Policy heading, double-click Computer Configuration.

    3. Double-click Administrative Templates, then Network, Network Connections, and then Windows Firewall.

    4. If the computer is in the domain, then double-click Domain Profile; otherwise, double-click Standard Profile.

    5. Click Windows Firewall: Allow inbound remote administration exception.

    6. On the Action menu either select Edit, or double-click the selection from the previous step.

    7. Check the Enabled radio button, and then click OK.

    Using the NETSH command:

    1. Open a command prompt window with Administrative rights (you can right-click the Command Prompt icon and click Run as Administrator).

    2. Execute the following command:

      NETSH advfirewall firewall set service RemoteAdmin enable
      
  4. Confirm that the user account you are logging in with uses the Name value and not the Full Name value:

    1. In the Control Panel, double-click Administrative Tools.

    2. In the Administrative Tools window, double-click Computer Management.

    3. In the Computer Management window, expand the System Tools then Local Users and Groups.

    4. Click the Users node, and on the right side panel locate your user and make sure it uses the Name value to connect, and not the Full Name value.

Common Errors

  • 0x80070005

    • DCOM Security was not configured properly (see Computer B, the Setting DCOM security... step).

    • The remote computer (Computer B) is a member of WORKGROUP or is in a domain that is untrusted by the client computer (Computer A) (see Computer A, the Grant Anonymous connections DCOM Remote Access permissions step).

  • 0x8007000E

    • The remote computer (Computer B) is a member of WORKGROUP or is in a domain that is untrusted by the client computer (Computer A) (see Computer A, the Grant Anonymous connections DCOM Remote Access permissions step).

  • 0x80041003

    • Access to the remote WMI namespace was not configured properly (see Computer B, the Allowing non-administrator users access to a specific WMI namespace step).

  • 0x800706BA

    • The DCOM port is not open on the client computers (Computer A) firewall. See the Open the DCOM port TCP 135 step for Computer A.

    • The remote computer (Computer B) is inaccessible because its network location is set to Public. Make sure you can access it through the Windows Explorer.