关于LOCALDB的详细文档说明,包含安装,连接,共享连接等操作 https://technet.microsoft.com/zh-cn/hh510202
目的:
调试程序没有安装 sql server时,可以使用localdb.这是一个简易的sql server数据库,用于本地测试是很方便,省去安装SQL SERVER的工作
环境:
安装了VS2013 VS2015 MSSM2016,但没有安装sql server. W10系统
安装:localdb
安装VS2015之后,就有了localdb2016 VS2013大概是2014 ,
另外localdb2014有单独的安装包,而2016则没找到.VS2015的安装包里有LOCALDB2016的MSI文件,但是安装之后却无法使用.
使用命令查看版本,如下:
使用:
了解到localdb这个东西已经安装了,但一时不知道如何使用.网上找答案使用方式如下:
1.打开CMD,使用sqllocaldb.exe 这个命令
sqllocaldb.exe i // 查看已经有的localdb的实例
sqllocaldb.exe v // 电脑上安装的localdb的所有版本
sqllocaldb.exe s [实例名] // 启动这个实例
sqllocaldb.exe -? // 这个命令的帮助信息
2.如何使用MSSM连接这个实例:
打开MSSM,服务器名称那里输入 (localdb)MSSQLLocalDB // 括号里面是 localdb 这个可能是固定的,我没改 反扛后面就是实例的名字.
然后就连接上了,可以建库建数据了
3.这个连接字符串的server值也要写成这种
server=(localdb)MSSQLLocalDB
4.连接串:
在ASP.NET程序中配置的连接字符串如下:
// 指定连接到这个数据库文件MDF
Server=(LocalDB)MSSQLLocalDB; Integrated Security=true;AttachDbFileName=D:DataMyDB1.mdf
// 不指定到MDF文件路径,指定默认数据库名
Server=(LocalDB)MSSQLLocalDB; Integrated Security=true;Initial Catalog=MyDB1"
// 类似第一种
Data Source=(localdb)MSSQLLocalDB;Integrated Security=true;AttachDbFileName=D:DataMyDB1.mdf
// 指定用户名和密码(目前使用这是这种,简单明了)
server=(localdb)MSSQLLocalDB;uid=sa;pwd=123456;Initial Catalog=MyDB1
使用这几种连接串在VS中使用IISEXPRESS调试时,没有问题,但是发布到IIS中,却连接不上数据库.因为访问权限的问题.细节请看文章第一行链接.
解决办法是:
1.将应用程序池的权限改为localsystem 这个投机的办法,比较省事.但是问题还是很多.
2.打开LocalDB 实例共享:(这个总结起来就是,给LOCALDB开共享实例,给LOCALDB设定连接帐号,这是测试可行的办法)
给LOCALDB开共享实例
// MSSQLLocalDB:实例名 mylocaldb 为实例名取的共享实例别名,其它帐户连接时通过这个别名 (命令窗口要使用管理员权限那种)
>sqllocaldb h "MSSQLLocalDB" "mylocaldb"
// 使用MSSM连接工具连接时,也要使用管理员权限打开.实例名变成 (localdb).mylocaldb 第一个后面的.mylocaldb 就是共享实例别名
为什么上面的MSSM要使用管理员工具打开,因为下面的验证方式是帐号密码形式的,如果使用WINDOWS验证,则不需要.
给LOCALDB设定连接帐号
到这步之后,将WEB程序的连接字符串写成指定帐号和密码的这种,结果依然不能访问,还是没有权限,
server=(localdb).mylocaldb;uid=sa;pwd=123456;AttachDbFileName=D:DataMyDB1.mdf
查看数据库帐号,发现LOCALDB并没有SA这个帐号,于是加上它,并且给于 DB_OWNER
最后,在浏览器中打开程序,发现连接成功,网页打开了..