我写下了与sql server express r2连接的以下行:
Connection con = DriverManager.getConnection(" jdbc:sqlserver:// localhost / SQLEXPRESS; databaseName = abc"," sa"," password");
它给出例外: com.microsoft.sqlserver.jdbc.SQLServerException:与主机localhost / SQLEXPRESS,端口1433的TCP / IP连接失败。错误:" null。验证连接属性,检查主机上是否正在运行SQL Server实例并接受端口上的TCP / IP连接,并且没有防火墙阻止与端口的TCP连接。"。
我按照该行来解决异常:
SQL Server Express的TCP / IP 默认情况下,SQL Server Express的TCP / IP已禁用,因此JDBC无法连接到它,您可能会收到以下异常...
网络错误IOException:连接被拒绝:连接 启用TCP / IP
要启用TCP / IP,请启动SQL Server配置管理器。
展开“SQL Server 2005网络配置”节点。 在右侧窗格中,选择SQLEXPRESS的协议。右侧窗格现在应显示“协议”和“状态”列。 从TCP / IP上下文菜单中选择“启用”。 查找或配置TCP / IP端口
启用TCP / IP后,您必须找出要使用的端口号。 SQL Server Express每次启动时都会动态分配端口,因此要查找或配置端口号,请继续使用SQL Server配置管理器...
从TCP / IP上下文菜单中选择“属性”。应打开“TCP / IP属性”对话框。 选择“IP地址”选项卡。 在IPAll节点中...... TCP动态端口字段显示当前使用的端口号。如果将该字段设置为空白,则SQL Server Express在重新启动时不应自动选择其他端口。 在“TCP端口”字段中设置所需的端口号。 按“确定”应用设置并关闭对话框。
之后也会给出同样的例外情况。
答案 0 :(得分:7)
尝试运行一些Java代码来测试它。将{computer-name} \ SQLEXPRESS替换为您在SQL Server Management Studio的根节点中看到的域。安装SQL Express时,您可以选择将“SQLEXPRESS”的名称更改为自定义名称,因此也可能不同。要获取端口号,请转到Windows开始菜单> SQL Server 2008 R2>配置工具> SQL Server配置管理器>展开“SQL Server网络配置”>单击“SQLEXPRESS的协议”>右键单击“TCP / IP”,然后选择“属性”>点击“IP地址”标签/菜单>在Windows XP中,您将看到“IPAll”..看看那里的端口。它应该默认为1433.如果你有2个版本的SQL Express,那么它可能会有所不同。还要确保您的服务正在运行(状态为“已启动”)在Windows控制面板中>管理工具>服务> SQL Server(SQLEXPRESS)。 Windows 7略有不同,但你会发现它。
双反斜杠需要在Java字符串中。这只是在运行时打印一个反斜杠,因为它是一个转义序列。
import java.sql.*;
public class TestConnection
{
public static void main(String[] args)
{
DB db = new DB();
db.dbConnect("jdbc:sqlserver://{computer-name}\\SQLEXPRESS:1433;databaseName=abc;integratedSecurity=true;","sa","password");
}
}
class DB
{
public DB() {}
public void dbConnect(String db_connect_string, String db_userid, String db_password)
{
try
{
Connection conn = DriverManager.getConnection(db_connect_string, db_userid, db_password);
System.out.println("connected");
}
catch (Exception e)
{
e.printStackTrace();
}
}
};
答案 1 :(得分:2)
尝试使用本地计算机的IP地址而不是localhost。
答案 2 :(得分:1)
对于SQL Server> 2005年,您还必须启动 Sql Server Browser 服务。
我已经使用Sql Server 2014 Express成功测试了JBoss 7。 操作系统:Windows 7。 我必须为Sql Server做的设置:
停止了以下两项服务并再次启动它们:
我在网址中没有使用端口和本地计算机名称。
答案 3 :(得分:1)
我在sqlserver2008中也遇到了同样的问题。要解决这些问题,请按照以下方法进行操作: 启动sqlserver->从登录窗口选择选项按钮 - >连接属性 - >连接到数据库 - >眉毛和选择数据库名称 - >然后在网络协议下面选择TCP / IP。 并执行您的程序。