Time for action – configuring MySQL to allow remote connections
We need to change the common default MySQL behavior, which will prevent us from accessing the database from other hosts.
Edit
/etc/mysql/my.cnf
in your favorite text editor and look for this line:bind-address = 127.0.0.1
Change it to this:
# bind-address = 127.0.0.1
Restart MySQL:
$ restart mysql
What just happened?
Most out-of-the-box MySQL configurations allow access only from the same host on which the server is running. This is absolutely the correct default from a security standpoint. However, it can also cause real confusion if, for example, you launch MapReduce jobs that try to access the database on that host. You may see the job fail with connection errors. If that happens, you fire up the mysql
command-line client on the host; this will succeed. Then, perhaps, you will write a quick JDBC client to test connectivity. This will also work. Only when you try these steps from one of the Hadoop worker nodes will the problem...