LocalDBhtml
LocalDB专门为开发商。它是很是容易安装,无需管理,但它提供了相同的T-SQL语言,编程表面和客户端供应商按期的SQL Server Express。实际上,目标SQL Server再也不须要安装和管理他们的笔记本电脑和其余开发机器的SQL Server Express全实例开发。此外,若是简单(和限制)LocalDB适合目标应用环境的须要,开发人员能够继续使用在生产中,为使一个很好的嵌入式数据库LocalDB池。sql
经过上文的了解,明白了LocalDB 至关因而一个比较小型的数据库,它没有SQL Server 那样繁复的安装过程和庞大的体积,相对于普通的数据库来说,它能够称为很轻量级别的数据库。数据库
接下来我会根据我目前的学习和了解,来学习一下这个localdb。express
环境编程
通常来说,localdb 是做为开发者来使用的,主要的做用就是用于知足开发这个的开发需求,因此从VS2012 和 SQL Server 2008 通常都自带有localdb了 ,这两款自带的组件的localdb 版本是 sql localdb 2012 查询的版本号为v11.0。windows
这个版本localdb 是没有默认实例。工具
后面自带的版本的有 VS 2013~2017 这里到目前的sql localdb的版本是2012~2016版本,从VS2013 自带的local 2014版本以后,到目前我所了解到的最新版本local 2017 都是有一个默认的实例名MSSQLocalDB。这个实例是能够直接使用的。学习
接下来咱们讲一下,通常在不安装任何VS 和SQL server的 安装环境,这里的windows 系统,分别是win7 和 win10 。测试
这里我推荐使用的是localdb 2016这个版本,由于我本机装的vs2017 ,自带的这个版本,这个版本的localdb 相较于其余的版本在我测试了不少次以后,发现这个版本是最好使用的一个版本。ui
要达成localdb 2016的使用,目前我发现的环境,只须要知足两个条件就能够一台彻底干净的windows (这里我指的是win7 和win10 我都测试过能够ping 通数据库)系统下使用,这两个环境分别是.net 4.0 和 Microsoft SQL Server 2012 Native Client 。
使用方法
localdb 的使用方法,虽然网上不少,可是我仍是贴出来。(这里注意全部的CMD命令都要管理员运行)
查询全部 实例
sqllocaldb i 查询当前全部的实例(包括共享名)
要是查单独的 sqllocaldb i (你要查询的实例名)
这里若是状态是启动的,那么就会有实例管道名(实例管道名能够),这里的自动建立指的是 是否是localdb 自带的实例名,没有影响。
这里咱们建立一个新的来完整的测试一遍。
一、建立一个新的实例名
sqllocaldb c MyLocaldb
二、启动这个实例名
sqllocaldb s MyLocaldb
三、 查看实例名详情
sqllocaldb i MyLocaldb
四、中止这个实例名
sqllocaldb p MyLocaldb
五、删除这个实例名
sqllocaldb d MyLocaldb
在建立,并启动实例名以后,咱们能够直接经过 (localdb)\MyLocaldb 而后经过windows用户来访问数据库。
这里我推荐使用Navicat Premium 来测试链接是否成功。在熟练以后,就能够不使用这个, 直接去试了。
配置文件的写法参考。
在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
共享实例名
这里特别提一下共享实例名
共享实例名要用到的状况是你同时有几个进程同时须要访问这个数据库的话,那么会发生占用的状况,这种状况就须要共享实例名来处理这个问题了。
共享实例名的使用方法。
一、声明一个共享实例名。
sqllocaldb h "MyLocaldb" "mylocaldb"
这样咱们就能够经过共享实例名mylocaldb来访问到实例名MyLocaldb 了
二、访问共享实例名
(localdb)\.\mylocaldb
(这里建立完了共享实例名有时候会出现访问超时,或者找不到这个共享名。这里我查过官方的说法是这个会有一丢丢延迟,要等一会才能访问,我通常的作法是重启电脑就能访问)
三、中止共享实例名
sqllocaldb u .\mylocaldb
中止完了就不能使用了。
通常要
// 使用SSMS链接工具链接时,也要使用管理员权限打开.实例名变成 (localdb)\.\mylocaldb 第一个\后面的.\mylocaldb 就是共享实例别名
为何上面的SSMS要使用管理员工具打开,由于下面的验证方式是账号密码形式的,若是使用WINDOWS验证,则不须要.
给LOCALDB设定链接账号
到这步以后,将WEB程序的链接字符串写成指定账号和密码的这种,结果依然不能访问,仍是没有权限,
server=(localdb)\.\mylocaldb;uid=sa;pwd=123456;AttachDbFileName=D:\Data\MyDB1.mdf
查看数据库账号,发现LOCALDB并无SA这个账号,因而加上它,而且给于 DB_OWNER
除了这种方法以外,还有一种不用设置sa的方法,可是我目前只用用于在服务之中调用的方法,
若是你同时使用windows服务访问这个数据库,能够尝试一下这个方法,
在安装完成以后,找到这个服务,而后切到登陆,到下面红框里面输入,管理员帐号的帐号和密码。而后重启服务。
补充的内容
localdb 建立的实例名所在的文件夹(这里能够查看log)
C:\Users\XXX\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances
这里存着全部的实例名,若是删除实例名以后,能够来这里检查一下, 有没有删除,没有的话,你就帮帮忙,由于localdb 的删除不是很给力。
localdb 启动文件。(你全部的命令都是它在执行。)
C:\Program Files\Microsoft SQL Server\110\Tools\Binn
这里的110是不必定的,是跟你安装的localdb 版原本的,好比 localdb 2012就是110,2016就是130 ,若是你电脑装着多种版本的localdb ,有一句语法能够指定使用哪一个版本
REM Create an instance of LocalDB
"C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe" create LocalDBApp1
REM Start the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe" start LocalDBApp1
REM Gather information about the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe" info LocalDBApp1
根据你的版本调整数值。
以上就是目前我对sql localdb 的所有了解。基本都能在网上找到,我这里只是作个一个学习的总结。
主要参考了:
http://www.javashuo.com/article/p-unjprurb-eu.html
https://blog.csdn.net/Holmofy/article/details/77917999?utm_source=blogxgwz9