1. Home
  2. Tutorials
  3. Databases
  4. MySQL
  5. MySQL Workbench
Yolinux.com Tutorial

MySQL Workbench:

Oracle MySQL Workbench installation and use: MySQL Workbench is a SQL database GUI interface tool specifically for the MySQL databases. This tutorial will cover the use of MySQL Workbench with a MySQL database.

Note that this is not the SQL Workbench/J Java GUI generic SQL database tool.
For more on this tool see our SQL Workbench/J tutorial.

Description:

The MySQL Workbench "community edition" is an open source GUI data modeling, schema design, SQL development and database admin client for the MySQL database. It allows easy point and click discovery and investigation of any MySQL database.

MySQL Workbench Installation:

Oracle MySQL Workbench installation on Linux and Microsoft Windows platforms.

  1. Download MySQL Workbench: downloads


Linux:

RHEL 6:
  1. Dependencies/Prerequisites:
    • Pexpect: from RHEL6 Server DVD (not on the RHEL6 Workstation DVD)
      /media/RHEL_6.0 x86_64 Disc 1/Packages/pexpect-2.3-6.el6.noarch.rpm
    • LibZip: libzip-0.9-3.1.el6.x86_64.rpm
      rpm -ivh libzip-0.9-3.1.el6.x86_64.rpm
  2. Download MySQL Workbench: mysql-workbench-gpl-5.2.33b-1el6.x86_64.rpm
  3. Install: rpm -ivh mysql-workbench-gpl-5.2.33b-1el6.x86_64.rpm
  4. Start: ./sqlworkbench.sh


Microsoft Windows:

  1. Unzip each download.

  2. Start MySQL Workbench:

MySQL Workbench main screen:

MySQL Workbench start screen

MySQL Workbench Connection Configuration:

One must configure MySQL Workbench to attach to the MySQL database. MySQL Workbench allows one to store multiple DB server connections, each with their own unique configurations.

Three MySQL Workbench supported connection types will be detailed here:

Direct Connection to port 3306 on the DB Server:

This connection is the simplest but also the least desirable as it is not encrypted.

  1. Configure a "New Connection":
    New database connection configuration
    Select "File" + "New Connection":
    • Hostname: Be sure to assign a name to your configuration where the "hostname" is the network node name, its' IP address or "localhost" if the database is running locally.
    • The port is probably the MySQL default "3306".
    • Specify the login and password
    • Specify the database name ("Default Schema").

    Select "Store in Vault..." to enter password

  2. Test Connection (optional: select this button to test)
  3. Storing passwords (optional):

    Hit OK and then "Store password in vault"

The MySQL database can be configured for remote client access by both granting remote access to the database user (all hosts "%") explicitly and the MySQL "bind-address" configuration in /etc/my.cnf.
For more see the YoLinux.com Linux and MySQL Tutorial (check out the security section to configure for remote access)

[Potential Pitfall]: Upgrade to 5.7.4 or using passwords generate in MySQL 4.1 or earlier:

The password encryption hashing algorithm was changed and thus old passwords generated with the old algorithm fail to authenticate correctly. Backwards compatibility with the old scheme was eliminated in version 5.7.4.

Error: (MySQL Workbench)
Authentication plugin 'mysql_old_password' cannot be loaded: /usr/lib/mysql/plugin/
mysql_old_password.so: cannot open shared object file: No such file or directory
Reseting the password will encrypt the password with the new hashing algorithm and authentication will work.
SET PASSWORD FOR 'userx'@'localhost' = PASSWORD('supersecretpassword');

For more details see password hashing docs

SSH Connection to the DB Server Host with a Local Connection to Port 3306:

Using ssh over the network is significantly more secure and thus recommended. It does require issuing a login account on the database server in addition to database access.

SSH Connection to the DB Server Host with a Local Connection to Port 3306

Select the "SSH Password" "Store in Keychain" button to enter the server login password.
Select the "Password" "Store in Keychain" button to enter the MySQL database login password.

SSH tunnel and AWS EC2 RDS:

Amazon cloud configurations often include a web server (EC2 instance) and an Aurora database RDS (Relational Database Service) configured on a local VPC (Virtual Private Cloud) using non-routable local IP addresses. The web server Linux instance will typically have a public Amazon "Elastic" IP address.

Using MySQL Workbench requires a ssh tunnel connection to the Linux web server using the ssh key and public IP address and "tunneling" the connection to the separate RDS server over the private VPC network. MySQL Workbench supports this type of connection

AWS VPC network configuration

Ssh tunnel and AWS EC2 RDS configuration

Set the values as follows:
  • Connection Name - Create a name to identify your connection
  • Connection Method - Select "Standard TCP/IP over SSH" from the drop down list (Don't use the default: Standard(TCP/IP)). On the three tabbed pane, fill the following values found under "Parameters" tab (the other two tabs (SSL and Advanced) are not used).
    • SSH Hostname - Provide the IP address or Public DNS name of the Amazon EC2 instance which will be used as the proxy to create the connection with the DB instance.
    • SSH Username - Provide the login id of the Amazon EC2 instance
    • SSH Password - Select "Clear" if using the ssh key to log-in
    • SSH Key File - Provide the Private Key (xxx.pem) used to connect Amazon EC2 instance via SSH
    • MySQL Hostname - Provide the Endpoint of the DB instance created in Amazon RDS
    • Username - Provide the database Master User id of the DB instance created in Amazon RDS
    • Password - Click on Store in Keychain.. button and type the password provided while creating the DB instance in Amazon RDS.

Using MySQL Workbench:

Reverse Engineer an existing Database:

Generate a Database Schema Diagram from an existing MySQL database:

In this example we are looking at the Nagios MySQL database schema.

Create and store a MySQL connection configuration as shown above.

  1. From the toolbar select "Database" + "Reverse Engineer ..."
    Choose your "Stored Connection"

    Select "Next"

  2. A new dialog box will appear:
    Select "Next"

  3. On this dialog box select the database schema to be processed: "nagios"
    (All databases which have been generated within your MySQL instance will be displayed)

    Select "Next"

  4. The following panel appears (default options shown):

    Select "Next"

  5. The following dialog panel allows you to filter the database schema by table. The default is to select all:

    If you choose "Show Filter" this will allow you to choose which tables are displayed in the diagram.
    Select "Execute"

  6. A new dialog box will appear:
    Select "Next"

  7. A Results summary panel will display:

    Select "Close"

The schema model for the database will display. Drag and arrange as you wish.

You can select from the toolbar "Arrange" + "Autolayout"

Generate a schema diagram of the DDL

Generate a Database Schema Diagram from a SQL file:

  • Generate a Workbench model:
    1. From the toolbar:
      • File + New Model
      • File + Import + Reverse Engineer MySQL. Create script...
      • This opens dialog box. "Browse" or enter the SQL file name. Select "Execute" button
      OR
    2. Select "Create EER Model from SQL Script" under the heading "Data Modeling"

    Reverse Engineer SQL

  • This action launches a new dialog box.
    Reverse Engineer SQL
    Select "Next". In the next dialog box, select "Close"

  • Select "Model" + "Create Diagram from Catalog Objects"
    (This will generate a full data model diagram. You can now rearrange the layout for the most appropriate presentation.)

  • Generate image file: File + Export + Export as PNG...

MySQL Workbench Tips:

Specify layout size: (required for large schema models with many tables requiring allot of space for the diagram.)
  • From the toolbar select "Model"
  • Select "Diagram Properties and Size"
  • Set the number of pages for the layout height and width.

Links:

Books:

book cover image "MySQL, Second edition"
by Paul DuBois
ISBN # 0735712123, New Riders Publishing

Amazon.com
book cover image "Managing and Using MySQL"
by George Reese, Randy Jay Yarger, Tim King
ISBN # 0596002114, O'Reilly

Amazon.com
book cover image "MySQL Cookbook"
by Paul DuBois
ISBN # 0596001452, O'Reilly

Amazon.com
book cover image "High Performance MySQL"
by Jeremy D. Zawodny, Derek J. Balling
ISBN # 0596003064, O'Reilly

Amazon.com
book cover image "The Definitive Guide to MySQL, Second Edition"
by Michael Kofler
ISBN # 1590591445, APress

Amazon.com
book cover image "MySQL Certification Study Guide"
by Paul Dubois, Stefan Hinz, Carsten Pedersen
ISBN # 0672326329, Sams

Amazon.com