我用于mysql服务器远程连接的数据库URL到底是什么?

时间:2019-01-05 21:31:27

标签: java mysql sql jdbc

尝试使用具有以下要求的语法的JDBC自动驱动程序连接到mysql数据库:jdbc:subProtocolName:databaseURL

我知道如何与提供mysql服务器的本地主机一起使用,但是我还没有远程完成此操作,因此我想在第一次使用时正确处理它,而不是对我的应用程序进行编码并且无法设置.xml文件等中的断点,并混淆了我可能遇到的其他问题的来源。

到目前为止,我有:“ jdbc:mysql:[url ???]:3306 / dbname?autoReconnect = true”

是服务器的简单IP地址,还是myusername @ [ipAddressofServer],还是其他?我不认为它是name @ localhost:[port#],因为那将表明服务器位于本地。我在网上看到过一些东西说要在这里使用“服务器名称”。这等于主机名吗?例子很好,它不涉及在本地主机上运行的mysql。谢谢!

1 个答案:

答案 0 :(得分:2)

(警告:这里有些简化)。

您可能已经知道,可以通过两种方式识别(直接)连接到Internet的计算机:

  1. “ IP地址”,其历史格式为151.101.1.69(但如今可能更长且更可怕),或者
  2. “ DNS(域名服务)名称”,例如stackoverflow.com,有时也称为“主机名”。

当应用程序想要连接到其自己的计算机时,可以使用上述两种特殊情况。 127.0.0.1localhost均表示“此计算机”。

因此,如果要连接到远程计算机,则可以在连接字符串中使用其DNS名称或IP地址作为“服务器名称”。例如,如果在上面的示例中计算机上运行了MySQL Server,则您的连接字符串可能是

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