java无法连接数据库问题(急)

小弟初学java,现困惑于无法连接到数据库,java代码如下
import java.sql.*;

public class ConnectDB
{

public static final String DBDRIVER ="org.gjt.mm.mysql.Driver";
public static final String DBname="sa";
public static final String DBpw="dark";
public static final String DBurl1="jdbc:mysql://localhost:3306/websiteuser";
public static final String DBurl2= "jdbc:odbc:sqlodbc";
public static void main(String[] argu)
{
try
{
Class.forName(DBDRIVER);
Connection con = null;
con=DriverManager.getConnection(DBurl1,DBname,DBpw);
System.out.println("You've Connected Database:"+con);
Statement stat=con.createStatement();
数据库更新操作略
stat.close();con.close();catch(){}略
}
数据库使用sql2000配置正确并在本地启动,验证采用混合验证sa用户密码无误,驱动无误,classpath环境变量无误,很令我在意的是配置本地数据源实例后(名为sqlodbc)若使用上述DBurl2进行连接,编译和运行完全可以通过,并可以实现数据库操作。想要说的是使用DBurl1连接编译也能通过,运行则出现如图的错误The last packet sent successfully to the server was 0 milliseconds ago. The driv
er has not received any packets from the server.这句话令我非常在意,似乎是连接上了无法收到服务器的反馈信息?遂关闭防火墙杀毒软件等工具,仍然如此。默认端口没有改过,小弟十分费解,希望大虾帮忙。必有重谢
我也发现这个问题了,但为什么mysql的驱动可以实现sqlserver2000的odbc源连接呢。。

解决办法如下:

首先检查 我的电脑->管理->服务,查看是否启动了MySQL,然后打开 运行->regedit 打开注册表编辑器,检查注册表,路径见下图左下角的路径信息,把ImagePath改成你现在的路径(注意只改双引号内地路径地址)


然后在C:\Windows\System32下找到cmd.exe右键以管理员身份输入mysqld --initialize-insecure自动生成无密码的root用户,同时自动生成一个data文件夹,这时候再进行MySQL的安装,net start mysql,启动服务。


如果服务管理器中没有MySQL,在成功安装MySQL后,使用mysql的时候,在CMD中输入net start mysql,提示服务名无效,查看服务列表也找不到mysql服务。

解决办法:

在C:\Windows\System32下找到cmd.exe以管理员身份运行程序,

切换到MySQL安装目录的bin目录下

运行如下命令(具体试个人安装的MySQL版本及路径)

>cd C:\Program Files\MySQL\MySQL Server 5.6\bin

C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld.exe -install

提示  Service successfully installed.

此时,刷新服务管理器,就可以看到MySQL的服务了,然后回到前面的步骤修改ImagePath路径,然后进入cmd,输入mysqld --initialize-insecure自动生成无密码的root用户,同时自动生成一个data文件夹,这时候再进行MySQL的安装,net start mysql,启动服务。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-19
url2采用的是ODBC的连接方式,如果你本地数据源配置的是mssql2000,当然可以正常连接。url1采用的是JDBC的连接方式,而且连接字符串也是mysql的,你把url1的连接字符串改成mssql2000的写法再试一下,不同厂商的数据库连接规则不一样。
至于mysql的驱动,可以连接成功mssql2000,是因为驱动程序的实现都差不多,如果不涉及数据库本身的特殊语法,都可以进行CRUD操作的。本回答被提问者采纳
第2个回答  2011-02-19
你的连接驱动是mysql的
public static final String DBDRIVER ="org.gjt.mm.mysql.Driver";
你的连接路径也是mysql的
public static final String DBurl1="jdbc:mysql://localhost:3306/websiteuser";
但你用的却是sql2000数据库
mysql和sql2000是两个不同的数据库,你要用sql2000就要去找sql2000的连接驱动和连接路径的写法
相似回答