Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Host is not allowed to connect to this MySQL server for client-server application

Tags:

mysql

I just exported my tables from one web host to another (AWS). Thinking everything would go smoothly (yeah right), well, everything that can go wrong has gone wrong.

I get this error when trying to query my database (which I didn't get before):

SQLSTATE[HY000] [1130] Host '<my ip address>' is not allowed to connect to this MySQL server

This is the same error from this post:

Host 'xxx.xx.xxx.xxx' is not allowed to connect to this MySQL server

The solution in that post seems to revolve around having an administrative user. I am developing a chat application so every user needs to access the server (so I'm sure it's a bad idea to give them all administrative privileges). The answer by Pascal in that link says, If you are using mysql for a client/server application, prefer a subnet address. but I honestly don't understand what he means by that. And because of the amount of solutions, I'm not exactly sure which one I should follow based on my case.

How do I resolve this?

like image 722
Kacy Avatar asked Oct 21 '25 23:10

Kacy


1 Answers

MySQL has security tables that determine who is allowed to connect and from what host IP address.

Here's a good article on how to do it:

http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html

If you have a lot of connections, consider setting up a server to accept the connections and talk to the sql server. The easiest approach to this is to set up a REST interface and use a web server. Web servers are usually also highly optimized and relatively bug free.

In a similar architecture on AWS, I use nginx happily.

like image 58
Charlie Martin Avatar answered Oct 24 '25 12:10

Charlie Martin