以下列出的是同学们在用Java程序连接数据库时遇到的部分常见故障及问题,供大家参考,对照解决问题。
文章目录
一、安装SQLServer时没有选择混合登录模式,无法使用SQLServer身份验证方式登录。
解决方案如下:
步骤1:打开SQLServer,先用Windows身份验证方式连接服务器。
步骤2:在“对象资源管理器”窗口右击服务器,选择“属性”菜单,打开属性窗口,点击选择页中的“安全性”,然后在右窗格中勾选“SQLServer和Windows身份验证方式”,再点击确定按钮关闭窗口。
步骤3:在“对象资源管理器”窗口依次展开“安全性”、“登录名”项目,右击“sa”用户,选择“属性”菜单,打开属性窗口。先点击选择页中的“状态”,然后在右窗格中勾选“授予”和“已启用”;然后再点击选择页中的“常规”,设置登录密码。在目前的学习阶段,为了便于交流,建议大家都将密码设置成123456。
待确认——以上步骤完成后可能需要重新启动电脑(这是真的吗?还是重启服务就可以?)
二、附加数据库失败,错误号5120,具体信息如下图所示:
解决方案如下:
方案一:
将数据库文件复制到SQLServer默认的DATA文件夹再附加。
方案二:
出现这个错误,是因为没有操作权限,所以只要在Windows操作系统中设置数据库文件的安全属性即可。
步骤1:在Windows系统的资源管理器中右击该数据库文件,选择“属性”菜单—>选择“安全”标签—>选择“编辑”按钮。
步骤2:在选择组或用户名列表中,选择Authenticated Users,在权限列表中选中完全控制。选择"确定"按钮关闭对话框。
设置完以后附加数据库,成功。
三、附加数据库后,数据库显示为只读状态,不可修改。
解决方案如下:
在对象资源管理中右击数据库文件,选择“属性”,在对话框选中“选项”页,在右窗格找到“状态”一栏,发现“数据库为只读”这一项的值为“true”,把它改成“false”就可以。
补充:
如果上述操作无法完成,可以打开“SQLServer配置管理器”,在左窗格中选中“SQLServer”服务,右边列表项中选“SQLServer”,右击属性,打开属性窗口,在“登录”选项卡中将“内置账户”改为“本地服务”。
四、在MyEclipse中运行程序时发生“ClassNotFoundException”异常。错误信息:
lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
……
解决方案如下:
将jdbc驱动程序包加入项目并添加引用。
第1步:在项目中创建lib文件夹,将jdbc驱动程序包(文件名为sqljdbc4.jar)复制到lib文件夹中。
第2步:右击sqljdbc4.jar,选择“Build Path”菜单项的子菜单项“Add to Build Path”,可以看到sqljdbc4.jar被放入“Reference Libra”项中,添加引用成功。
五、在MyEclipse中运行程序时发生“SQLServerException”异常,错误信息如下所示:
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
解决方案如下:
方案一:
打开“计算机管理”程序,选择“服务和应用程序”中的“服务”,在右窗格中找到“SQLServer(MSSQLSERVER)”(注:括号中是实例名,安装软件时默认未改名就是MSSQLSERVER)服务,确认该服务是否已经运行。如果没有启动。右击选择“启动”命令。
在MyEclipse中运行程序,如果可以测试到连接成功则问题解决。如果该服务已经启动还是不能连接,则按方案二继续检查其它设置。
方案二:
打开“SQLServer配置管理器”,在左窗格中展开“SQLServer网络配置”,选择“MSSQLSERVER的协议”,在右窗格中检查“TCP/IP”协议是否处于禁用状态。如果禁用则右击选择“启用”,并打开其属性,在属性对话框中选择“IP地址”页,检查“IPALL”的TCP端口号是否设置为1433。修改完毕后,按方案一的步骤进入系统服务管理,重新启动SQLServer(MSSQLSERVER)服务。之后在MyEclipse中运行程序,应该可以测试到连接成功。
(补充:Named Piples和VIA协议好象要保持禁用,待确认)
总结
如果感觉步骤写得不清楚,或者还遇到新问题,请加以批正,我们来把文章做得更实用一些。