通过 servername\instancename 的 sql server express 连接
Posted
技术标签:
【中文标题】通过 servername\\instancename 的 sql server express 连接【英文标题】:sqlserver express connection over servername\instancename通过 servername\instancename 的 sql server express 连接 【发布时间】:2014-04-03 19:24:03 【问题描述】:我尝试连接到我的本地 sqlserver express 2008 R2。
当我将服务器名称指定为 127.0.0.1 时,例如
String url = "jdbc:sqlserver://127.0.0.1;databaseName=mydatabase;";
我可以连接。
但是当我将 servername\named 实例写为服务器名称时
String url = "jdbc:sqlserver://machinename//instancename;databaseName=mydatabase;";
然后我无法连接到服务器。
配置: 我设置启用 tcp/ip 连接。我在 ipall 部分将 tcp 动态端口设置为 1433。 命名实例->启用,不影响连接。
package demojdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Date;
import java.util.Iterator;
/**
*
* @author ttn
*/
public class DemoJdbc
/**
* @param args the command line arguments
*/
public static void main(String[] args)
// TODO code application logic here
baglanti();
public static void baglanti()
try
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("driver yuklendi");
catch (ClassNotFoundException e)
System.out.println("Drive bulunmadi"+e);
Connection con = null;
String url = "jdbc:sqlserver://127.0.0.1;databaseName=mydatabase;";
try
con= DriverManager.getConnection(url, "xxx","xxx");
System.out.println("Veritabanına baglantı kuruldu");
Statement stmt=con.createStatement();
catch (Exception e)
System.out.println("Hata Var"+e);
【问题讨论】:
尝试将 127.0.0.1 更改为 MachineName\SQLExpress 不,我无法连接到 MachineName\SQLExpress 【参考方案1】:我通过设置命名实例安装了 sqlserver,而 sqlserver 2008 R2 express 不提供 sql 浏览器。也许这是真正的问题,或者命名管道可能会改变,我不知道。我就这样连接成功了。
当我只写 machinename 时,我可以这样连接
String url = "jdbc:sqlserver://machinename;databaseName=mydatabase;";
顺便说一句,我可以通过 toad sql server 连接服务器,将服务器名称命名为 machinename\instancename。
我找不到真正的解决方案,但我解决了
这对开发人员很有用。
https://serverfault.com/questions/371832/why-cannot-connect-to-sql-server-by-the-full-server-name-with-instance-name
【讨论】:
AFAIK SQL Server 2008R2 Express 有 SQL Server Browser 服务,只是默认禁用。 如何启用sql server 浏览器 打开服务控制面板,寻找SQL server浏览器,设置为自动启动。 是的,这行得通。谢谢。我将 services.msc 作为命令提示符运行,然后启动 SQL Server 浏览器,谢谢。但我可以通过将服务器名称指定为 //MachineName 来建立连接,并且我的服务器在服务列表中显示为 SQL SERVER(INSTANCENAME)。 我不明白您评论的第二部分:即运行 SQL Server 实例的服务。 SQL Server Browser 服务是一个帮助服务,因此其他计算机可以发现该实例(对于 JDBC 驱动程序:查找要连接到命名实例的端口)。以上是关于通过 servername\instancename 的 sql server express 连接的主要内容,如果未能解决你的问题,请参考以下文章
java是通过值传递,也就是通过拷贝传递——通过方法操作不同类型的变量加深理解