我们看到 MySQL 进行名称解析的方式有些特殊——或者至少对我们来说是特殊的(-:
我们有两个数据中心,A 和 B。A 是主要的,B 用于故障转移。我们在 A 中有两台 MySQL 服务器,db1 和 db2,位于 active(db1)-passive(db2) 配置中的负载均衡器后面。MySQL“服务”被访问为db.domain.com
,它被命名为负载均衡器,lb.domain.com
。
查看mysql.db
表格时(在 中也类似mysql.user
),我们看到如下条目:
Host Db User
lb.domain.com app1 user1
lb.domain.com app2 user2
lb.domain.com app3 user3
一个人如何db.domain.com
进入Host
列而不是lb.domain.com
?
如果您想向相同的用户授予对应用程序数据库的访问权限,请执行以下操作:
如果您想用 'db.domain.com' 替换 'lb.domain.com',请执行以下操作:
试试看 !!!
更新 2011-10-26 12:43 EDT
也许您可能想尝试如下屏蔽域:
或替换域:
这样,来自 domain.com 域的任何用户身份验证都是可以接受的。
更新 2011-10-26 18:05 EDT
就个人而言,我讨厌在 mysql.user 和 mysql.db 中使用 DNS 名称
您实际上可以让 mysqld 绕过必须使用 DNS,如下所示
首先将所有 DNS 名称替换为硬 IP 地址。此外,将域名替换为 IP 网络块(而不是使用 10.20.30.% 的 *.domain.com)
然后,将以下内容添加到 /etc/my.cnf 并重新启动 mysql
那么,DNS 解析应该成为过去。