原文: https://www.cnblogs.com/mirrortom/p/5946817.html
目的:
调试程序没有安装 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:\Data\MyDB1.mdf
// 不指定到MDF文件路径,指定默认数据库名
Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true;Initial Catalog=MyDB1"
// 类似第一种
Data Source=(localdb)\MSSQLLocalDB;Integrated Security=true;AttachDbFileName=D:\Data\MyDB1.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:\Data\MyDB1.mdf
查看数据库帐号,发现LOCALDB并没有SA这个帐号,于是加上它,并且给于 DB_OWNER
最后,在浏览器中打开程序,发现连接成功,网页打开了..
使用sqllocaldb命令行工具管理数据库实例
LocalDb是SqlServer Express版本的轻量级版本,用于植入到visual studio应用程序中去。
调试程序没有安装 sql server时,可以使用localdb.这是一个简易的sql server数据库,用于本地测试是很方便,省去安装SQL SERVER的工作。
LocalDB数据库实例查找
安装好LocalDB后,默认有个实例名注意vs2015前默认实例名“v11.0”,之后为“mssqllocaldb”
查看LocalDB实例存放的位置%Localappdata%\Microsoft\Microsoft SQL Server Local DB\Instances
,其下的每个文件加都是一个LocalDB实例,
如mssqllocaldb文件夹下主要包含:系统数据文档(master、model、msdb、tempdb)、错误记录、记录追踪、加密密钥等
注意这里不包含用户数据库
用户数据可以放在任意位置,如果在创建时为指定路径默认创建在%userprofile%
目录下
连接LocalDB
LocalDB连接的服务器名称为(localdb)\实例名称
,可以使用sql server的“windows 身份验证”连接服务。
在.net网站下设置web.config的connectionstring可为:Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\EShop.mdf;Integrated Security=SSPI;"
注意最好指明AttachDbFilename,如果指明Initial Catalog(数据库名称)则创建的数据库在%userprofile%
目录下增加麻烦
管理LocalDB
通过SqlLocalDB.exe管理LocalDB;可以在cmd下通过where sqllocaldb.exe
搜索路径
命令 | 作用 |
---|---|
sqllocaldb.exe start 实例名 | 启动数据库实例 |
sqllocaldb.exe info 实例名 | 查询数据库实例信息 |
sqllocaldb.exe stop 实例名 | 关闭数据库实例 |
sqllocaldb.exe create 实例名 | 创建数据库实例 |
sqllocaldb.exe info | 列出所有数据库实例 |
sqllocaldb.exe delete 实例名 | 删除数据库实例 |