mysql - 如何创建命名数据库主机

标签 mysql replication host createuser

我正在尝试在网络上的两个系统上设置多主mysql 复制。两个独立的数据库服务器在 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

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

最佳答案

您可以使用 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(服务器1)

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

/etc/hosts(服务器2)

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

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

关于mysql - 如何创建命名数据库主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13634796/

相关文章:

mysql - 如果用户知道项目的主键 ID,从安全角度来看这是不好的做法吗

php - MySQL/MariaDB 中数百个 sleep

mysql - 如何将 AND 语句与 SELECT DISTINCT 一起使用?

hadoop - 快速HDFS和Hive数据复制

session - Delta Manager 截然不同(Tomcat session 复制)

azure - Windows Azure 网站上的 DNS

security - 签名的小程序可以与它们所源自的不同主机连接吗?

MySQL - 创建新行并使用新 ID 插入现有数据?

sql - 在 SQL Server 实例中存储数据库的多个版本的最合乎逻辑的方法是什么?

windows - 如何在 Xampp windows 10 中创建虚拟主机