我正在使用 jTDS 使用 SQL Server 身份验证(而不是 Windows 的身份验证方法)将 Liferay 实例连接到 SQL Server 2008 Express 服务器。我的 portal-ext.properties
中有类似的内容:
jdbc.default.driverClassName=net.sourceforge.jtds.jdbc.Driver
jdbc.default.url=jdbc:jtds:sqlserver://127.0.0.1:1433/somedb
jdbc.default.username=someuser
jdbc.default.password=somepassword
(对于那些不了解 Liferay 的人来说,这有点类似于调用
Class.forName("net.sourceforge.jtds.jdbc.Driver");
con = DriverManager.getConnection("jdbc:jtds:sqlserver://127.0.0.1:1433/somedb",
"someuser", "somepassword");
但是,尽管我传递了正确的用户名和密码,但它仍然出现错误,并显示消息用户“someuser”登录失败
。我确信服务器登录、数据库用户和数据库存在并且配置良好。
可能出了什么问题?
最佳答案
嗯,我想造成这种错误的原因可能有无数种。尽管如此,就我而言,解决方案如下:
在 SQL 配置管理器中启用 TCP/IP 连接。
打开 SQL Server Management Studio(如果尚未安装,请安装它;不过,它可能包含 its own pitfalls)。
右键单击数据库服务器(如下图所示),然后单击
属性
。- 选择
安全
选项并标记SQL Server 和 Windows 身份验证模式
。单击“确定”。 - 打开 SQL Server 配置管理器并重新启动 SQL Server 服务。
此后,我的连接就没有问题了。 This article对我帮助很大。
关于java - 尝试使用 SQL Server 身份验证连接到 SQL Server 2008 Express 数据库始终会导致 "Login failed for user ' .. .'.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16351326/