无法使用 SQuirreL 连接到 MySQL 数据库

Posted

技术标签:

【中文标题】无法使用 SQuirreL 连接到 MySQL 数据库【英文标题】:Cannot connect to MySQL db using SQuirreL 【发布时间】:2014-04-05 23:34:30 【问题描述】:

我无法使用客户端 Squirrel SQL 连接到 mysql。我之前设法连接到 Oracle 和 Derby,但这一次,我不知道自己做错了什么。

我已经按照以下步骤在我的 Mac 上安装了 MySQL:

    安装 MySQL:

    ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
    brew install git
    brew update
    brew install mysql
    

    为了确保安装安全:

    mysql.server start
    mysql_secure_installation
    mysql.server stop
    

    创建一个新的数据库:

    mysql.server start
    mysql -uroot -pmypassord
    create database mydb;
    show databases;
    

    要知道数据库的存储位置:

    mysql.server start
    mysql -uroot -pmypassword
    SELECT @@datadir, @@innodb_data_home_dir
    

    创建表格

    use mydb;
    create table tblemployee (
        employeeID  int not null,
        firstname   varchar(50),
        lastname    varchar(50),
        titleID     int,
        salary      float,
        primary key (employeeID)
    );
    

按照以下步骤操作后:

MySQL 安装在 /usr/local/Cellar/mysql/5.6.17 下 数据库存储在/usr/local/var/mysql/mydb下 表 tblemployee 已成功创建。

然后我在 SQuirreL 中安装 MySQL 的驱动程序 (mysql-connector-java-5.1.30-bin) 并创建一个别名,其 URL 为“jdbc:mysql:/usr/local/var/mysql/mydb” , 用户名为“root”,密码为“mypassword”。

但是当我尝试连接时,我收到以下错误消息:

尝试打开 SQL 连接时发生意外错误。

当我点击 Stack Trace 时,我得到的是:

java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.sql.SQLException: Unable to create connection. Check your URL.
    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.util.concurrent.FutureTask.get(FutureTask.java:202)
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.awaitConnection(Unknown Source)
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$100(Unknown Source)
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$2.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.RuntimeException: java.sql.SQLException: Unable to create connection. Check your URL.
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(Unknown Source)
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$000(Unknown Source)
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$1.run(Unknown Source)
    ... 5 more
Caused by: java.sql.SQLException: Unable to create connection. Check your URL.
    at net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(Unknown Source)
    ... 8 more

我做错了什么?

【问题讨论】:

【参考方案1】:

检查您的 jdbc 连接 URL,这似乎是无效的: 'jdbc:mysql:/usr/local/var/mysql/mydb'

Jdbc url 类似于 'jdbc:mysql:/database',所以应该类似​​于: 'jdbc:mysql:localhost/mydb'

【讨论】:

URL 实际上应该是这样的:'jdbc:mysql://localhost/mydb' 端口也要提一下:jdbc:mysql://localhost:port/mydb【参考方案2】:

安装 MySQL 并创建数据库后,您必须转到 SQL SQuirrel。

在 SQuirrel 中,首先要做的是安装适当的驱动程序。 在 MySQL 的情况下:

转到“驱动程序”(屏幕左侧)选项卡。 二次点击“MySQL Driver”。 点击“更改”。

它会打开一个对话框:

名称:您要为驱动程序指定的名称(保持原样)。 示例 URL:jdbc:mysql://localhost/(数据库名称) 网址:http://dev.mysql.com

转到“Extra Class Path”选项卡,然后添加 .jar MySQL 连接器。您将在安装 MySQL 的文件夹中找到它。在我的情况下,它是“Program Files (x85) /MySQL/Connector.J 5.1 / mysql-connector-java-5.1.39-bin.jar” 确定,您将准备好驱动程序。现在,添加一个新别名。

转到此选项卡,然后单击添加按钮(蓝十字):

名称:您要赋予别名的名称。 驱动程序:MySQL 驱动程序 网址:默认,并已配置驱动安装。 用户名:root 密码:我的密码

最后,您按下“确定”按钮并准备就绪。

我希望你的解释足够清楚。

您好。

【讨论】:

以上是关于无法使用 SQuirreL 连接到 MySQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章

使用 Hive JDBC 驱动程序通过 Squirrel 连接到 Knox

使用 SQuirrel SQL 连接到 SQL Server

通过 squirrel sql 连接到 hive/spark sql 时读取超时

如何从非域注册的 Linux 机器使用 SQuirreL SQL 连接到 SQL Server?

使用 Java JDBC squirrel-sql 驱动程序连接到 Netezza 失败

用 Squirrel SQL 制作简单的数据库