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

lca*_*rre 5 mysql squirrel-sql

我在使用客户端 Squirrel SQL 连接到 MySQL 时遇到问题。之前我成功连接到了 Oracle 和 Derby,但这一次,我不知道我做错了什么。

我已经在 Mac 上安装了 MySQL,步骤如下:

  1. 要安装 MySQL:

    ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
    brew install git
    brew update
    brew install mysql
    
    Run Code Online (Sandbox Code Playgroud)
  2. 为了确保安装安全:

    mysql.server start
    mysql_secure_installation
    mysql.server stop
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建新数据库:

    mysql.server start
    mysql -uroot -pmypassord
    create database mydb;
    show databases;
    
    Run Code Online (Sandbox Code Playgroud)
  4. 要了解数据库的存储位置:

    mysql.server start
    mysql -uroot -pmypassword
    SELECT @@datadir, @@innodb_data_home_dir
    
    Run Code Online (Sandbox Code Playgroud)
  5. 创建一个表

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

我按照以下步骤操作后:

  • 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 连接时发生意外错误。

当我单击“堆栈跟踪”时,我得到的是:

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
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

小智 4

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

Jdbc url 类似于“jdbc:mysql:/database”,因此应该类似于:“jdbc:mysql:localhost/mydb”

  • URL 实际上应该类似于:“jdbc:mysql://localhost/mydb” (3认同)