我正在研究 MySQL 并试图了解绑定地址在版本 8 上的工作原理。 每当我输入bind-address = 127.0.0.1 /(本地机器ip)然后:
CREATE USER 'test'@'other_machine_ip' IDENTIFIED WITH mysql_native_password BY 'xxxxxx';
GRANT ALL ON *.* TO 'test'@'other_machine_ip';
其他机器可以像这样远程连接,但是当我执行bind-address=other_machine_ip时,mysql无法启动。
谁能解释一下吗?
127.0.0.1
是ALL IPv4 机器所拥有的特殊 IP 地址,他们用来与自己对话,因此它始终指的是本地机器。
如果您希望机器
A
与机器 B
对话,那么您提供给机器 A
的 IP 地址必须 是机器 B
的 IP 地址。如果您告诉机器 A
连接到 127.0.0.1
,它会尝试连接到自身。
您从
A
使用的 MySQL 登录名还需要在 B
上进行配置,以允许从 A
访问数据库,方法是设置允许这样做的密码,例如
grant all privileges on ${DATABASE}.* to '${USERNAME}'@'${MACHINE-A}' identified by '${PASSWORD}'
(酌情替换)
您还需要能够在两者之间进行路由。检查他们是否可以互相
ping
。
MySQL 还需要监听端口
3306
,以及本地 unix 套接字,例如通过将 port=3306
添加到服务器上 [mysqld]
的 my.cnf
部分以及客户端上 [client]
的 my.cnf
部分。
注意:MySQL 不在长距离或高延迟链路上表现良好。您可能会遇到意想不到的性能不佳。
所以在这种情况下,如果我有一个使用javafx开发的软件,在机器A上运行,并且Xampp在管理员机器或经理机器上运行,我怎样才能使该软件依赖于管理员的数据库来连接到管理员机器?