Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't connect to MySQL server on (ip or domain name)

I'm trying to configure a web server (Debian 7). I followed this tutorial. I'm renting my server thanks to gandi.net service. And i have now apache2, mysql, php5 up and running. I connect to it using following command on terminal : ssh [email protected]

Next step is to create my database through sequel pro and I don't know how to do it and documentation is not so clear... Here is what I'm talking about : enter image description here

I have tried to connect :

  • Nom : some name, i found clear. (I think i can put anything in here, right ?)
  • Host : ip or domain name
  • User : the username I'm using in my ssh connection (cf above)
  • Password : the password I both use for ssh connection (cf above) and mysql connection

For the rest, I left like it was and I received this error message :

Unable to connect to host domainname.com, or the request timed out.

Be sure that the address is correct and that you have the necessary privileges, or try increasing the connection timeout (currently 10 seconds).

MySQL said: Can't connect to MySQL server on 'domainename.com' (61)' (2)

Any idea how I could do that?

like image 942
Ambroise Collon Avatar asked Jan 19 '14 19:01

Ambroise Collon


People also ask

Can't connect MySQL server on IP?

normally means that there is no MySQL server running on the system or that you are using an incorrect Unix socket file name or TCP/IP port number when trying to connect to the server. You should also check that the TCP/IP port you are using has not been blocked by a firewall or port blocking service.

Can't connect to MySQL server on remote host?

To allow remote access to MySQL, you have to comment out bind-address (you did) and skip-networking in the configuration file. Next, you have to make sure the user is allowed remote access. Check your user with this: SELECT User, Host FROM mysql.

How do I fix MySQL not connected?

ipconfig and then just check the IP address and put it in place of localhost in the previous command. If this still doesn't works then put 127.0. 0.1:3306 . After this, it will prompt to add or save the password , enter a unique password there.


1 Answers

If you do a normal install of MySQL on Debian, it will be configured to block external connections to the database.

This means that you still need to tell MySQL that external access is OK. To do this, you need to update the bind address for MySQL. This is configured in my.cnf, which, on Debian based systems, is located in /etc/mysql/my.cnf.

In there, find the section that says

[mysqld]

In there, you must make sure that

  • the line skip-networking is either commented (comments start with a '#') or not there, and
  • Bind-address is set to either 0.0.0.0 (which it is if there is no line bind-address) or to your server's IP-address.

After doing this, you should restart your MySQL service. Then you need to create a user that is allowed remote access. This can be done with a SQL query:

GRANT ALL ON yourdatabase.* TO youruser@'*' IDENTIFIED BY 'yourpassword';

You can switch out the asterisk for the IP-address you will connect from, if it's the same every time.

Finally , you need to open port 3306 (the port MySQL uses) on your firewall. This usually isn't neccesary as it is already open on most systems, but it can be done using the following iptables command.

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
service iptables save

Source: 1

like image 58
Bert Peters Avatar answered Oct 20 '22 00:10

Bert Peters