【问题标题】:How to detect database type?如何检测数据库类型?
【发布时间】:2012-04-12 14:34:57
【问题描述】:

我需要确定我要连接的数据库是 MySQL 而不是 PostgreSQL 或 Microsoft SQL Server。我怎样才能知道正在使用哪种类型的数据库。

【问题讨论】:

  • 你是如何连接到数据库的?

标签: database types detection


【解决方案1】:

如果您尝试使用 mySQL 数据库驱动程序连接到 PostgreSQL 数据库,第一个提示可能是“连接错误”:)

基本上,您需要:

1) 以可移植的方式编写您的应用程序(例如,不要在可能在 mySql 上运行的查询中使用 MSSQL 扩展)

2) 选择可移植的驱动 API(如 JDBC、ODBC、ADO.Net 等)

3) 为您的应用程序提供一些在运行时查询实际数据库类型的机制(例如,.config 属性文件)

4) 针对每种受支持的数据库类型测试您已完成的应用程序。

'希望有帮助.. PSM

【讨论】:

  • 如果它已经连接了怎么办?,有什么查询可以找出这个数据库是mysql吗?
  • Dude - 如果你的应用程序一开始不知道正确的数据库类型,它就不会被连接。会吗?但无论如何 - 大多数驱动程序 API(同样:ODBC、JDBC、ADO.Net - 所有常见的嫌疑人)通常都有一种机制来查询有关您连接到的服务器的详细信息。
  • 是我还是他听起来像是 mysql 入侵者/注入尝试?
  • 你是对的,谢谢你的帮助,是的,它的注射尝试是为了教育目的
【解决方案2】:

您可以检查您尝试连接的主机上正在运行的数据库进程。

示例: ps -ef | grep mysql

【讨论】:

    【解决方案3】:

    从你的 cmets 来看,你有一个类似 SQL CLI 的界面,或者你只能执行 SQL 查询,你想知道它是否是一个 mysql 服务器来回答你的查询。

    你可以使用

    SELECT @@version_comment
    

    如果是 MySQL 服务器,它将返回类似 MySQL Community Server 的内容

    【讨论】:

      【解决方案4】:

      不,伙计!可以在不知道数据库类型的情况下连接到数据库。例如。我正在为一家名为 xactly 的供应商工作。他们的数据库链接为 xactly..com,jdbc 为 xactly.jdbc.com。我可以使用驱动程序很好地连接到实例,但我仍在尝试查找数据库类型

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多