Your database server contains tables full of important data. Querying this data graphically on your local computer is the easiest way to interact with your database. But connecting remotely to your database server usually entails configuring MySQL to listen on every interface, restricting access to port
3306with your firewall, and configuring user and host permissions for authentication. And allowing connections to MySQL directly can be a security concern.
Using tools like HeidiSQL for Windows, Sequel Pro for macOS, or the cross-platform MySQL Workbench, you can connect securely to your database over SSH, bypassing those cumbersome and potentially insecure steps. This brief article will show you how to connect to a remote database using MySQL Workbench.
PrerequisitesTo complete this tutorial, you will need:
- A server running MySQL that is accessible via SSH.
- MySQL Workbench installed on your local machine, which is available for all major platforms, including Windows, macOS, Ubuntu Linux, RedHat Linux, and Fedora. Visit the MySQL Workbench Downloads page to download the installer for your operating system.
- The public IP address of the server running MySQL.
- The server's SSH Port if configured differently than port
- A user account with SSH access to the server, with a password or public key.
- The username and password for the MySQL account you wish to use.
Connecting to the Database Server With SSHOnce you've installed MySQL Workbench on your computer, launch the program. Create a new connection by clicking the + icon next to MySQL Connections in the main window.
You'll be presented with the Connect to Database window, which looks like the following figure:
To create the connection, enter the following details:
- For Connection Name, enter any name you'd like that helps you identify the connection you're making later. This might be something like
database_for_myappor something more descriptive.
- Change the Connection Method to Standard TCP/IP over SSH.
- For SSH Hostname, enter your MySQL server's IP address. If your server accepts SSH connections on a different port, enter the IP address, followed by a colon and port number.
- For SSH Username, enter the username you use to log into the server via SSH.
- For SSH Password, enter the password you use for your SSH user. If you use public keys instead of passwords, select an SSH key for authentication.
- For MySQL Hostname and MySQL Server Port, use the default values.
- For Username, enter the MySQL username.
- For Password, you can either enter the password or leave it blank. If you do not store the MySQL password in MySQL Workbench, a prompt will request the password each time you attempt to connect to the database.
- Choose Test Connection to ensure your settings are correct.
- Choose OK to create the connection.
Once you've connected to your database, you can view the details of the MySQL instance, including database status, current connections, and database configuration, as well as users and permissions. MySQL Workbench also supports importing and exporting of MySQL dump files so you can quickly back up and restore your database.
You will find your databases listed under the SCHEMAS area of the left navigation bar. The dropdown arrow next to each database will allow you to expand and navigate your databases tables and objects. You can easily view table data, write complex queries, and edit data from this area of MySQL Workbench, as shown in the following figure:
To manage your connections, select the Database menu and choose the Connect to Database option, or press
⌘Uon the Mac or
CTRL+Uon Windows and Linux systems. To connect to a different database, create a new connection using the same process you used for your first connection.
Using MySQL Workbench to access your remote MySQL database through an SSH tunnel is a simple and secure way to manage your databases from the comfort of your local computer. Using the connection method in this tutorial, you can bypass multiple network and security configuration changes normally required for a remote MySQL connection.