我制作了一个可以用Java轻松操作的Mysql数据库,
但是我无法从其他机器访问它,因为它只运行localhost吗?我将如何制作它以便我能够操纵来自另一台机器的数据。或者我是否认为这一切都错了?我试过在MySQL工作台上玩远程访问,但我只是不理解它。
以下是我目前如何访问它。
Connection myConn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/sampledatabase"
);
答案 0 :(得分:2)
当然你可以远程访问它!
首先,您必须了解什么是MySQL用户和身份验证机制。 MySQL将'UserName'@'Host'
视为可以访问MySQL服务器的真实用户。当您在本地访问它时,您使用的实际用户是'Me'@'localhost'
(假设此处的用户名为“我”)。在MySQL服务器内部必须存在名为'Me'@'localhost'
的用户(或'Me'@'%'
)。您也必须为'Me'@'localhost'
提供正确的密码。
当您需要远程访问它时,必须使用远程IP地址替换localhost
,以便您的应用程序可以正确创建TCP连接。假设MySQL服务器的IP地址为172.0.1.5
,并且您的应用程序的IP地址为172.0.1.10
。您现在使用的实际用户是'Me'@'172.0.1.10'
。您必须确保MySQL服务器中存在用户'Me'@'172.0.1.10'
。否则您将遇到身份验证失败。
检查所有用户:
select * from mysql.user; // if you have the privilige to perform it
添加用户:Create User Syntax。
答案 1 :(得分:1)
是的,您可以访问安装在其他计算机上的数据库。您需要了解您提供的网址
jdbc:mysql://localhost:3306/sampledatabase
此处localhost
是指数据库服务器的主机名,表示相同的计算机或本地计算机。如果您尝试访问驻留在其他计算机上的其他数据库服务器,则需要将localhost
替换为remote-machine-hostname
或ip-address
。