使用bind-address进行MySQL远程访问

问题描述 投票:0回答:2

我正在研究 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无法启动。

谁能解释一下吗?

mysql
2个回答
0
投票

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 在长距离或高延迟链路上表现良好。您可能会遇到意想不到的性能不佳。


0
投票

所以在这种情况下,如果我有一个使用javafx开发的软件,在机器A上运行,并且Xampp在管理员机器或经理机器上运行,我怎样才能使该软件依赖于管理员的数据库来连接到管理员机器?

© www.soinside.com 2019 - 2024. All rights reserved.