【问题标题】:How to create a named database host如何创建命名数据库主机
【发布时间】:2012-11-29 21:11:10
【问题描述】:

我正在尝试在网络上的两个系统上设置多主机 mysql replication。两个独立的数据库服务器在localhost 运行mysql,我如何为hosts 创建replication 用户,因为它们共享相同的名称。

我可以这样做,但这似乎不是正确的做法。

CREATE USER 'repl_user1'@'localhost' IDENTIFIED BY 'password1';  // Server1
CREATE USER 'repl_user2'@'localhost' IDENTIFIED BY 'password2';  // Server2

我认为应该这样做

CREATE USER 'repl_user1'@'server1.com' IDENTIFIED BY 'password1';  // Server1
CREATE USER 'repl_user2'@'server2.com' IDENTIFIED BY 'password2';  // Server2

但我不知道如何给主机命名。 感谢您的帮助。

【问题讨论】:

  • 为什么不在两个实例上使用相同的复制用户?
  • 我需要一个对每个实例都具有复制权限的用户。我的问题是如何引用主机,因为它们使用相同的名称'localhost'。

标签: mysql replication host createuser


【解决方案1】:

您可以使用 IP,例如:

CREATE USER 'repl_user1'@'192.168.1.101' IDENTIFIED BY 'password1';  // Server1
CREATE USER 'repl_user2'@'192.168.1.102' IDENTIFIED BY 'password2';  // Server2

如果您真的想使用主机名(并且您还没有使用 DNS 为您的服务器设置一些),只需将它们添加到您的主机文件并引用它们。例如:

/etc/hosts (server1)

127.0.0.1         localhost server1.local
192.168.1.101     server1.local
192.168.1.102     server2.local

/etc/hosts (server2)

127.0.0.1         localhost server2.local
192.168.1.101     server1.local
192.168.1.102     server2.local

然后设置用户:

CREATE USER 'repl_user1'@'server1.local' IDENTIFIED BY 'password1';  // Server1
CREATE USER 'repl_user2'@'server2.local' IDENTIFIED BY 'password2';  // Server2

这应该可以工作,这样两台服务器都可以从自己的主机和另一台主机接收连接,并将其映射到正确的用户。

【讨论】:

  • 好的,我明白了。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-14
  • 2011-01-26
相关资源
最近更新 更多