没有为jdbc找到合适的驱动程序:mysql:// localhost /

我试图将我的代码从linux移植到mac OSX LION。 以下方法适用于linux就好了。

Connection getConnection() throws SQLException{ String url = "jdbc:mysql://localhost/"; return DriverManager.getConnection(url, "root", "mypassword"); } 

但它不能在我的Mac上工作。 我正在使用XAMMP,因此我的数据库的路径是/Applications/XAMPP/xamppfiles/bin/mysql 。 我得到的错误是读

 Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/ at java.sql.DriverManager.getConnection(DriverManager.java:602) at java.sql.DriverManager.getConnection(DriverManager.java:185) 

基于以下post的反馈更新:

我下载了jar并将其添加到项目的构建路径中。 当我尝试添加Class.forName("com.mysql.jdbc.Driver")我收到编译错误,所以我将其注释掉。 然后我运行该程序以获取以下错误:

 Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1117) at com.mysql.jdbc.MysqlIO.(MysqlIO.java:350) at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2408) at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2445) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2230) at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:813) at com.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:47) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:334) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:185) at learning.database.Classroom.getConnection(Classroom.java:42) at learning.database.Classroom.main(Classroom.java:239) Caused by: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at java.net.Socket.(Socket.java:375) at java.net.Socket.(Socket.java:218) at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:259) at com.mysql.jdbc.MysqlIO.(MysqlIO.java:300) ... 16 more Java Result: 1 BUILD SUCCESSFUL (total time: 0 seconds) 

JAVA JDK没有特定的SQL驱动程序(即mySQL,postgre,MS SQL等)。 您需要单独下载并安装它们。 可以在此处找到java mysql连接器的下载链接:

http://dev.mysql.com/downloads/connector/j/

它表示将驱动程序放在类路径中,但您也可以将它放在IDE的构建路径中,根据您的操作可能会更容易。

确保mysql jdbc连接器位于CLASSPATH中。 您可能还需要加载驱动程序,在尝试获取连接之前添加以下行:

 Class.forName("com.mysql.jdbc.Driver"); 

您需要在mac的类路径上拥有mysql jdbc连接器jar。