Mono Jamoon
Mono Jamoon

Reputation: 4607

How to connect to a MySQL server running on a Virtual Machine

I have a MySQL Server 5.5.32 running on Ubuntu 12.04. Ubuntu is being run on VM. Host platform is Windows 7. How can I connect with the Ubuntu's MySQL from Windows?

I have done the following so far:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

Running a show grant for root; displays this:

+-------------------------------------------------------------+
| Grants for root@%                                           |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+

But when I try to connect to this server from SQLYog running on Windows, I get an error Error 2003 Cannot connect to mysql server on '192.168.xxx.xxx'.

The IP being feed to SQLYog, I got it from ifconfig. Supplied the inet addr.

inet addr:192.168.226.xxx  Bcast:192.168.226.yyy

Is the address being used is incorrect or are these grant issues? Please advice.

Upvotes: 14

Views: 58953

Answers (5)

Kamiel
Kamiel

Reputation: 1225

In newer versions of MySQL, instead of skip-networking the default is now to listen only on localhost bind-address = 127.0.0.1

So you need to add your machine IP to here or simply comment it out if you are not worry about security concerns.

Upvotes: 4

Prabhakar Manthena
Prabhakar Manthena

Reputation: 2303

I think the problem is with the Network Adapter settings in your VM settings

Do like this in your VM settings.

VM Settings -> Network Adapter Settings -> Select Bridged

The VM will connect to the physical network when the network connection is on bridged mode.

Try to ping the VM host in your windows machine after changing the network connection to bridged.

If the VM is pinging in your windows machine then it will work.

Upvotes: 1

Sathish D
Sathish D

Reputation: 5034

The error message Error No. 2003: Can't connect to MySQL server on 'localhost' (or some other host)

simply means that connection is not possible for one of the following (or similar) reasons:

  • There is no MySQL server running at the specified host

  • Connection to the MySQL server is not allowed using TCP-IP. Check the 'skip-networking' setting in the MySQL configuration file (my.ini on Windows, my.cnf on Unix/Linux). It shall be commented out like '#skip-networking'. If it is not commented out, then do it and restart the MySQL server for the change to take effect. SQLyog needs to connect using TCP-IP.

  • Some networking issue prevents connection. It could be a network malconfiguration or a firewall issue. We have experienced sometimes that some firewalls is blocking TCP-IP connections even if it claims to be disabled. Most often it will help to uninstall and reinstall the firewall.

  • When trying to connect to a MySQL server at an ISP this error message often indicates that direct connection to MySQL has been blocked. You must then use HTTP-tunneling or SSH-tunneling to connect.

Upvotes: 1

user2332130
user2332130

Reputation:

Error No. 2003: Can't connect to MySQL server on '192.168.x.x'

simply means that connection is not possible for one of the following (or similar) reasons:

  • There is no MySQL server running at the specified host

  • Connection to the MySQL server is not allowed using TCP-IP. Check the 'skip-networking' setting in the MySQL configuration file (my.ini on Windows, my.cnf on Unix/Linux). It shall be commented out like '#skip-networking'. If it is not commented out, then do it and restart the MySQL server for the change to take effect. SQLyog needs to connect using TCP-IP.

  • Make sure that you are able to connect to MySQL port using telnet

    C:\telnet hostname/IP_address port

Upvotes: 0

You problem is that (probably) your mysql is bind to 127.0.0.1 instead of 0.0.0.0.

You should change bind in /etc/mysql/my.cnf to 0.0.0.0

bind-address = 0.0.0.0

And then restart mysql of course.

Upvotes: 20

Related Questions