对于WEB开发人员而言,常常会遇到远程连接MySQL服务器的情况。一个网站上线后,需要正常的在远程服务器上运行。同时,漏洞修补和功能升级的工作通常在本地进行。为了使本地开发最大限度的得到准确的测试,常常需要直接连接远程服务器上的数据。这样才能及时的反应新版本的程序是否能够正常运行。

默认情况下,远程访问MySQL需要三方面的设置:

  • MySQL服务器防火墙;

  • MySQL服务器访问规则;

  • 需要远程访问的用户权限设置;

防火墙方面的请大家参考所使用的防火墙的设置文档。MySQL服务的端口默认是3306,在此不多讲了。

服务器访问规则比较容易忽略。

为了加强安全性,MySQL默认情况下是不允许通过TCP/IP访问服务器的,只允许通过socket进行访问。这在本地访问的时候问题不大,因为当服务器地址为localhost的时候,mysql客户端会自动通过对应的socket接口(默认为/var/run/mysqld/mysqld.sock,在my.cnf中mysqld段设置)。

远程访问是通过TCP/IP协议来访问的,所以必须打开这个选项。方法也很简单,就是打开MySQL的配置文件my.cnf,把mysqld段中的skip-networking这一行注释掉就可以了。

第三方面最简单,就是在创建用户的时候,主机设置里添加客户机的域名或者IP地址,当然也可以用通配符%表示所有主机都允许。