This tutorial will walk you through setting up a user on your MySQL server to connect remotely.
The following items are assumed:
Contents |
You will need to know what the IP address you are connecting from. To find this you can go to one of the following sites:
Granting access to a user from a remote host is fairly simple and can be accomplished from just a few steps. First you will need to login to your MySQL server as the root user. You can do this by typing the following command:
# mysql -u root -p
This will prompt you for your MySQL root password.
Once you are logged into MySQL you need to issue the GRANT command that will enable access for your remote user. In this example we will be creating a brand new user (fooUser) that will have full access to the fooDatabase database.
Keep in mind that this statement is not complete and will need some items changed. Please change 1.2.3.4 to the IP address that we obtained above. You will also need to change my_password with the password that you would like to use for fooUser.
mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';
This statement will grant ALL permissions to the newly created user fooUser with a password of 'my_password' when they connect from the IP address 1.2.3.4.
Now you can test your connection remotely. You can access your MySQL server from another Linux server:
# mysql -u fooUser -p -h 44.55.66.77 Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 17 Server version: 5.0.45 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> _
Note that the IP of our MySQL server is 44.55.66.77 in this example.
There are a few things to note when setting up these remote users:
© 2011-2013 Rackspace US, Inc.
Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License

12 Comments
A more secure way of connecting to MySQL remotely
I can explain how I connect to MySQL securely in one *NIX command line: "ssh -L 3306:localhost:3306 [IP Address of Remote server]"
This is the simplest way, but there are more switches you can use with SSH to for example daemonize the SSH client. Putty can also do this.
Now when you open up MySQLWorkbench, just connect to: 127.0.0.1:3306. You need to enter the IP rather than localhost, or MySQL will attempt to connect using a unix named socket(which obviously does not exist on your local machine).
And there you have it, a secured tunnelled connection to your MySQL server.
Re: SSH tunnel
ssh tunnels for mysql...
http://chxo.com/be2/20040511_5667.html
Obviously with such a technique there are other issues to consider, which the above article covers.
If connection does not work even after opening port 3306
it worked .thanks friend
Thanks, works great!
Connecting to MySQL using MySQL Workbench
I have SSH with public keys setup and I am using a specific port other than the default 22. I was having problems making a remote connection using MySQL Workbench following the tutorial and I worked it out.
1. Make sure if you are creating a new connection in MySQL Workbench that you select the Standard TCP/IP over SSH as the Connection Method.
2. Enter your SSH Hostname as 'serverIP':'port' e.g. 123.321.1.12:123456
3. Enter your SSH Username
4. Enter your MySQL Hostname as 'localhost'
5. Enter your MySQL Port e.g. 3306
6. Enter your MySQL Username - you should have already set this up
7. Test your connection
You will be prompted to enter your SSH password and MySQL user password, and you can choose whether you want to save these in your keychain if you're using a Mac. Job done!
It took me a while to figure out that my MySQL Hostname was 'localhost' but I got there in the end by trial and error.
If anyone who knows more about connecting to MySQL has any feedback, let me know, as I believe from what I have read following the Rackspace tutorials I am creating a secure connection.
Thanks Tom
it works on windows??
re: Windows
http://www.mysql.com/downloads/installer/
from unfixed IP address
re: unfixed IP address
Add new comment