连接到虚拟机中的数据库

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

我正在为未来的项目练习java和数据库之间的连接,但我走到了“死胡同”。

我的问题是我有(系统A:192.168.1.6)和(系统B:192.168.1.254)系统B是托管在VirtualBox中的Windows 10虚拟机(网卡设置为桥)

无论如何,我尝试使用 XAMPP 连接到系统 B 中托管的数据库,但我无法使其在系统 A 中以任何方式工作,这是我尝试连接的当前行:

Connection connect = DriverManager.getConnection("jdbc:mysql://192.168.1.254:3306/caleno", "root", "");

如果我尝试在系统 A 上运行我的程序,它将无法工作,但如果我更改本地主机的 IP 并将其移至系统 B,它将正常运行,对于这种做法,我在哪里运行它并不重要但我想知道如何互连两台计算机,我还将在最后分享一个 github 链接,其中有我项目的当前状态,以防有人想尝试。

我尝试在具有全局访问权限的 xamp 上创建新用户,按照链接 1 中先前所述,并按照链接 2 中所述更改 XAMP 配置

我还尝试了以下代码行(只是为了尝试)

Connection connect = DriverManager.getConnection("jdbc:mysql://192.168.1.254:3306/caleno", "root", "");
Connection connect = DriverManager.getConnection("jdbc:mysql://192.168.1.254:8080/caleno", "root", "");
(这是在完成链接 2 上的相关操作之后,程序冻结并最终出现错误)
Connection connect = DriverManager.getConnection("jdbc:mysql://192.168.1.254/caleno", "root", "");
(我知道这个行不通,但无论如何值得一试)

链接1

链接2

Github 存储库

此外,在 /com/caleno/resources 内部有一个名为 sql 的文件夹,其中有我的数据库的副本(虽然里面只有 1 个表和 1 个注册表)

与我的数据库连接相关的信息位于 java/com/caleno (数据库文件)上,然后在 FXMLDocumentController 上是我使用此连接以便继续的地方

请理解,我只是一名学生,我对这个世界还很陌生,所以如果可能的话,如果您能解释我做错了什么,我将不胜感激,提前非常感谢

java mysql database xampp
1个回答
0
投票

转到 Windows 虚拟机 (B) 并找到 MySQL 安装目录,通常类似于

\xampp\mysql\bin\
,文件名为 my.ini。在那里,您需要找到绑定地址参数并将其更改为
0.0.0.0

bind-address=0.0.0.0

然后,你的 MySQL 用户应该将主机设置为 % 或你的 PC 的 IP,而不是 localhost。

否则,请在远程 MySQL 服务器上执行此 MySQL 命令。

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 FLUSH PRIVILEGES;
© www.soinside.com 2019 - 2024. All rights reserved.