我不是专门寻找如何使mysql接受远程连接-这是在这么多的教程,论坛和博客解决。然而,他们停止了对 my.cnf
配置文件,它们在其中指定主机上的ip地址 bind-address
设置。
我很感兴趣的设置,让我连接到我的mysql不是我的机器ip地址,而是通过mysql.mydomain.com。我需要在哪里(或什么配置文件)设置这个?我是否需要为mysql.mydomain.com创建一个a记录(尽管我认为dns记录只适用于端口80/443之类的东西)?
不,我不希望mysql.mydomain.com成为一个面向前台的phpmyadmin或类似网站。当我从mysql工作台连接到它或者从web应用程序连接到一个连接字符串的一部分时,我希望能够写这个而不是ip地址。
1条答案
按热度按时间v1l68za41#
这是客户的问题。客户端(即应用程序运行的主机)需要能够将完全限定的主机名解析为ip地址。基本上它会运行这个函数
gethostbyname()
(在c代码中)并返回ip地址。这是任何客户机查找其服务器的方式,而不仅仅是mysql客户机。当你打开一个网站的浏览器时,同样的事情也会发生。
所以客户端需要解析“mysql.mydomain.com”。这种情况至少有两种常见的发生方式:
编辑
/etc/hosts
在客户端主机上。这允许您指定每个主机名对应的ip地址。看到了吗http://man7.org/linux/man-pages/man5/hosts.5.html使用dns。因为在许多应用程序客户端主机上维护/etc/hosts文件会很乏味,所以发明了dns。这个
gethostbyname()
如果/etc/hosts中没有要解析的主机的本地定义,则函数会自动检查dns。dns不仅用于端口80/443连接(即默认的http/https端口)。它适用于任何主机名解析。它将被
ping
,或ftp
或者mysql
客户,或ssh
或通过主机名进行网络连接的任何其他客户端。