尝试使用需要以下语法的 JDBC 自动驱动程序加载连接到 mysql 数据库:jdbc:subProtocolName:databaseURL
我知道如何在提供 mysql 服务器的本地主机上使用它,但我还没有远程完成过,我想在第一时间就把它做好,而不是编写我的应用程序而无法设置.xml 文件中的断点等,混淆了我可能遇到的其他问题的来源。
到目前为止我有:“jdbc:mysql:[url???]:3306/dbname?autoReconnect=true”
它只是服务器的 IP 地址,还是 myusername@[ipAddressofServer],或者完全是其他什么?我不认为它会是 name@localhost:[port#] 因为这表明服务器驻留在本地。我在网上看到的东西说在这里使用“服务器名称”。这相当于主机名吗?不涉及在本地主机上运行的 mysql 的示例会很棒。谢谢!
最佳答案
(警告:这里有一些轻微的过度简化。)
您可能知道,可以通过两种方式识别(直接)连接到 Internet 的计算机:
- 一个“IP 地址”,过去的形式是
151.101.1.69
(但现在可能更长更可怕),或者 - “DNS(域名服务)名称”,例如
stackoverflow.com
,有时称为“主机名”。
当应用程序想要连接到自己的计算机时,它可以使用上述两种特殊情况。 127.0.0.1
和 localhost
都表示“这台电脑”。
因此,如果您想连接到远程机器,您可以使用它的 DNS 名称或 IP 地址作为连接字符串中的“服务器名称”。例如,如果上面示例中的机器上运行着一个 MySQL 服务器,那么您的连接字符串可能是
jdbc:mysql://151.101.1.69:3306/databasename?useUnicode=true&characterEncoding=utf8
或
jdbc:mysql://stackoverflow.com:3306/databasename?useUnicode=true&characterEncoding=utf8
注意事项:
- 您实际上不需要指定端口 3306,因为这是 MySQL 的默认端口。如果您从连接字符串中省略端口号,驱动程序将尝试使用 3306。
useUnicode=true&characterEncoding=utf8
只是添加到连接字符串的常见属性的示例。它们很多,您可以阅读更多关于它们的信息 here .
关于java - 远程连接的 mysql 服务器的数据库 URL 到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54056455/