sqlserver 解决error18456、error2812

本文介绍了遇到SQL Server 2000登录时出现错误18456的问题,并在尝试多种解决方法后找到了有效的解决方案。在修改SA账户密码的过程中又遇到了错误2812,最终通过运行特定代码成功解决问题。

今天打开sqlserver2000用sql server模式登陆的时候突然报error 18456,在网上找了下方法,试了很多,最后使用如下方法解决了,修改sa的登陆密码,但是在修改的时候又出现了error2812 未能找到存储过程 ‘sp_password’的错误,最后又找了一个办法,在查询分析器里运行代码(点击获取代码)即可解决,我试了,完全好用!分享给大家。

注:代码链接为我的wordpress博客,希望大家多多支持。

在使用JDBC连接SQL Server 2008时,出现错误代码18456、状态28000通常表示身份验证失败。以下是可能的原因及对应的解决方案: ### 1. **检查SQL Server身份验证模式** SQL Server 2008默认可能使用的是Windows身份验证模式,而JDBC连接需要使用SQL Server身份验证。确保SQL Server实例允许SQL Server和Windows身份验证模式。可以通过SQL Server Management Studio (SSMS)修改服务器的身份验证模式,并重启SQL Server服务以生效[^2]。 ### 2. **确认用户名和密码正确** 错误代码18456通常与无效的用户名或密码相关。确保在连接字符串中使用的用户名和密码正确无误。例如,如果使用的是`sa`账户,确保密码与SQL Server中设置的`sa`密码一致[^3]。 ### 3. **启用SQL Server的远程连接** 确保SQL Server配置管理器中启用了TCP/IP协议,并且端口设置正确。SQL Server 2008的端口可能是动态分配的,建议手动设置端口为1433,以便JDBC连接时使用。 ### 4. **检查防火墙设置** 确保SQL Server所在机器的防火墙允许通过SQL Server使用的端口(通常是1433)。如果防火墙阻止了该端口,JDBC将无法建立连接。 ### 5. **确保JDBC驱动程序正确** 使用适合JDK版本的JDBC驱动程序。如果使用的是JDK 6.0及以上版本,应使用`sqljdbc4.jar`;对于较低版本的JDK,应使用`sqljdbc.jar`。确保驱动程序已正确添加到项目的类路径中[^2]。 ### 6. **检查SQL Server服务是否运行** 确保SQL Server服务正在运行。可以通过SQL Server配置管理器检查SQL Server服务的状态,若未运行,手动启动服务。 ### 7. **测试连接字符串格式** 确保连接字符串格式正确。以下是一个示例连接字符串: ```java String url = "jdbc:sqlserver://localhost:1433;databaseName=YourDatabaseName;user=sa;password=YourPassword;"; ``` 或者使用`DriverManager`进行连接: ```java String className = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; String url = "jdbc:sqlserver://localhost:1433;DatabaseName=YourDatabaseName"; String username = "sa"; String password = "YourPassword"; Class.forName(className); Connection conn = DriverManager.getConnection(url, username, password); ``` ### 8. **检查SQL Server的登录权限** 确保使用的账户具有访问目标数据库的权限。可以通过SSMS检查并授予账户相应的权限。 ### 9. **查看SQL Server日志** SQL Server的日志文件中可能会提供更详细的错误信息,帮助定位问题。可以在SSMS中查看SQL Server的日志,或者直接查看SQL Server的日志文件。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值