sqlserver通过servername \ instancename快速连接

时间:2014-04-03 19:24:03

标签: java sql-server jdbc

我尝试连接到我的本地sqlserver express 2008 R2。

当我指定服务器名称为127.0.0.1时,如

String url =“jdbc:sqlserver://127.0.0.1; databaseName = mydatabase;”;

我可以连接。

但是当我将servername \ named instance写为服务器名称时,如

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);
        }

    }

}

1 个答案:

答案 0 :(得分:0)

我通过设置命名实例安装sqlserver而sqlserver 2008 R2表示不提供sql浏览器。也许这是真正的问题或命名管道可能会改变,我不知道。我以这种方式成功连接。

当我只写机器名时,我可以像那样连接

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