【问题标题】:Java JDBC: Cannot connect to SQL due to unknown databaseJava JDBC:由于数据库未知,无法连接到 SQL
【发布时间】:2020-07-19 14:58:45
【问题描述】:

所以我已经能够在我的旧计算机上通过 Netbeans 连接到 MySQL,使用以下代码:

        Class.forName("com.mysql.jdbc.Driver");
        String connectionUrl = "jdbc:mysql://localhost:3306/tblpizza?user=root"; 
        Connection con = DriverManager.getConnection(connectionUrl,"root","root");

但是自从换了新电脑,每次尝试运行代码,都会出现这个错误:

SQL 异常: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:未知 数据库“根”

一般来说,我对编码还很陌生,我尝试在网上研究不同的查询,但找不到解决方案。

注意事项:

-我尝试更改代码的不同部分,确保没有遗漏任何大写/小写字母

-我进入MYSQL并运行命令检查所有数据库名称,并确保将正确的复制下来

-无论我如何更改代码,它总是说“未知数据库'root'”,即使我没有将root作为数据库名称

任何帮助将不胜感激!

【问题讨论】:

  • 删除?user=root。您在 getConnection() 调用中指定用户。
  • Class.forName() 行自 2006 年以来就不再需要了。

标签: java mysql jdbc mysql-workbench mysql-connector


【解决方案1】:

您的数据库 URL 不应具有 ?user=root 后缀。

让它看起来像这样,因为您已经在 getConnection(url, username, password) 调用中指定了用户名/密码。

String connectionUrl = "jdbc:mysql://localhost:3306/tblpizza"; 

【讨论】:

  • 不幸的是,我尝试了这个 - 只删除了 ?user=root - 但是它仍然出现了同样的错误。我也没有更改 getConnection() 行。
【解决方案2】:

由于在创建con 对象时在下一步中询问用户名和密码,因此您不应在连接url 中指定它。 尝试通过从连接 url 中删除 ?user=root 来运行代码。

String connectionUrl = "jdbc:mysql://localhost:3306/tblpizza"; 

【讨论】:

    【解决方案3】:
    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/tblpizza","root","root");
    

    试试这个方法,可以省略connectionUrl变量。

    【讨论】:

    • 不幸的是,这也不起作用。提供完全相同的输出
    猜你喜欢
    • 2021-06-27
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 2020-11-13
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多