LocalDB

  LocalDB专门为开发商。它是非常容易安装,无需管理,但它提供了相同的T-SQL语言,编程表面和客户端供应商定期的SQL Server Express。实际上,目标SQL Server不再需要安装和管理他们的笔记本电脑和其他开发机器的SQL Server Express全实例开发。此外,如果简单(和限制)LocalDB适合目标应用环境的需要,开发人员可以继续使用在生产中,为使一个很好的嵌入式数据库LocalDB池。

通过上文的了解,明白了LocalDB 相当于是一个比较小型的数据库,它没有SQL Server 那样繁复的安装过程和庞大的体积,相对于普通的数据库来讲,它可以称为很轻量级别的数据库。

接下来我会根据我目前的学习和了解,来学习一下这个localdb。


环境


  一般来讲,localdb 是作为开发者来使用的,主要的作用就是用于满足开发这个的开发需求,所以从VS2012  和 SQL Server 2008 一般都自带有localdb了 ,这两款自带的组件的localdb 版本是 sql  localdb 2012   查询的版本号为v11.0。

这个版本localdb  是没有默认实例。

后面自带的版本的有 VS 2013~2017 这里到目前的sql localdb的版本是2012~2016版本,从VS2013 自带的local 2014版本之后,到目前我所了解到的最新版本local 2017 都是有一个默认的实例名MSSQLocalDB。这个实例是可以直接使用的。

接下来我们讲一下,一般在不安装任何VS 和SQL server的 安装环境,这里的windows 系统,分别是win7 和 win10 。

这里我推荐使用的是localdb 2016这个版本,因为我本机装的vs2017 ,自带的这个版本,这个版本的localdb 相较于其他的版本在我测试了很多次之后,发现这个版本是最好使用的一个版本。

要达成localdb 2016的使用,目前我发现的环境,只需要满足两个条件就可以一台完全干净的windows (这里我指的是win7 和win10 我都测试过可以ping 通数据库)系统下使用,这两个环境分别是.net 4.0 Microsoft SQL Server 2012 Native Client  。


使用方法

    localdb 的使用方法,虽然网上很多,但是我还是贴出来。(这里注意所有的CMD命令都要管理员运行)

查询所有 实例

sqllocaldb i              查询当前所有的实例(包括共享名)

要是查单独的 sqllocaldb i  (你要查询的实例名)

这里如果状态是启动的,那么就会有实例管道名(实例管道名可以),这里的自动创建指的是 是不是localdb 自带的实例名,没有影响。

这里我们创建一个新的来完整的测试一遍。

1、创建一个新的实例名

sqllocaldb c MyLocaldb

2、启动这个实例名

sqllocaldb s MyLocaldb

3、 查看实例名详情

sqllocaldb i MyLocaldb

4、停止这个实例名

sqllocaldb p MyLocaldb

5、删除这个实例名

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


共享实例名

这里特别提一下共享实例名

共享实例名要用到的情况是你同时有几个进程同时需要访问这个数据库的话,那么会发生占用的情况,这种情况就需要共享实例名来处理这个问题了。

共享实例名的使用方法。

1、声明一个共享实例名。

sqllocaldb h "MyLocaldb" "mylocaldb"

这样我们就可以通过共享实例名mylocaldb来访问到实例名MyLocaldb 了

2、访问共享实例名

(localdb)\.\mylocaldb

(这里创建完了共享实例名有时候会出现访问超时,或者找不到这个共享名。这里我查过官方的说法是这个会有一丢丢延迟,要等一会才能访问,我一般的做法是重启电脑就能访问)

3、停止共享实例名

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\\Tools\Binn

这里的110是不一定的,是跟你安装的localdb 版本来的,比如 localdb 2012就是110,2016就是130 ,如果你电脑装着多种版本的localdb ,有一句语法可以指定使用哪个版本

REM Create an instance of LocalDB

"C:\Program Files\Microsoft SQL Server\\Tools\Binn\SqlLocalDB.exe" create LocalDBApp1

REM Start the instance of LocalDB

"C:\Program Files\Microsoft SQL Server\\Tools\Binn\SqlLocalDB.exe" start LocalDBApp1

REM Gather information about the instance of LocalDB

"C:\Program Files\Microsoft SQL Server\\Tools\Binn\SqlLocalDB.exe" info LocalDBApp1

根据你的版本调整数值。

以上就是目前我对sql localdb 的全部了解。基本都能在网上找到,我这里只是做个一个学习的总结。

主要参考了:

https://www.cnblogs.com/mirrortom/p/5946817.html

https://docs.microsoft.com/zh-cn/sql/database-engine/configure-windows/sql-server-2016-express-localdb?view=sql-server-2017

https://blog.csdn.net/Holmofy/article/details/77917999?utm_source=blogxgwz9


 


sql LocalDB 的安装环境和使用方法的更多相关文章

  1. 初试WIX加SQL LocalDB

    最近有个项目需要生成一个自动打包安装App和数据库的MSI文件,经同事推荐WIX,于是乎就试了一试.遇到了一些问题觉得有分享的价值,所以写篇博客记录一下 :) 使用感觉: WIX特点:功能很强大,用X ...

  2. VS2017使用 SQL Localdb问题两则

    VS2017使用 SQL  Localdb问题两则 来博客园不算短了,总是索取者.最近使用VS2017,遇到一些问题,在解决时总是找不到拿来就能用的解决方案,在多方寻找,自行探索下,总算圆满解决,在这 ...

  3. SQL的OPENROWSET开启和使用方法

    [转载]SQL的OPENROWSET开启和使用方法 1.开始 -> 所有程序  -> Microsoft SQL Server 2005  -> 配置工具  -> SQL Se ...

  4. Sql Server 2012 的新分页方法分析(offset and fetch) - 转载

    最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的 其中 offset ...

  5. 最简单删除SQL Server中所有数据的方法

     最简单删除SQL Server中所有数据的方法 编写人:CC阿爸 2014-3-14 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间 ...

  6. SQL Server日志文件庞大收缩方法(实测好用)

    原文:SQL Server日志文件庞大收缩方法(实测好用) 这两个命令连续执行,间隔时间越少越明显(可多次运行),直到达到效果 --截断 BACKUP LOG CloudMonitor TO DISK ...

  7. 需要我们了解的SQL Server阻塞原因与解决方法

    需要我们了解的SQL Server阻塞原因与解决方法 上篇说SQL Server应用模式之OLTP系统性能分析.五种角度分析sql性能问题.本章依然是SQL性能 五种角度其一“阻塞与死锁” 这里通过连 ...

  8. SQL Server 性能优化之——系统化方法提高性能

    SQL Server 性能优化之——系统化方法提高性能 阅读导航 1. 概述 2. 规范逻辑数据库设计 3. 使用高效索引设计 4. 使用高效的查询设计 5. 使用技术分析低性能 6. 总结 1. 概 ...

  9. Oracle SQL 基本操作之 用户权限管理方法

     Oracle SQL 基本操作之 用户权限管理方法 最近把有关用户操作和权限管理的东西整理了一下,虽然不少博客都有过类似的整理,但是自己发现他们的内容或多或少都有些错误.于是,本人亲自对每条语句进行 ...

随机推荐

  1. DI 容器实务建议

    整理一些有关使用 DI 容器的一些建议事项,主要的参考数据源是 Jimmy Board 的文章:Container Usage Guidelines. 1.容器设定 避免对同一个组件(DLL)重复扫描 ...

  2. 利用Rsync同步工具上传、删除目标文件

    Rsync是文件备份工具,当然也可以当做传输工具,管理远程服务器的文件 上传 rsync -avzP --progress --port 9106 /path/.../指定文件 root@192.16 ...

  3. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发1-准备工作

    /****** Object: 新闻表 Script Date: 2017/9/2 星期六 15:11:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENT ...

  4. 浅谈jpa、hibernate与spring data jpa三者之间的关系

    1.解释hibernate之前先了解下什么是orm,orm是object relation mapping,即对象关系映射,object可以理解成java实体类Entity,relation是关系型数 ...

  5. RequestMapping原理分析和RequestMappingHandlerMapping

    转载https://juejin.im/post/5cbeadb96fb9a031ff0d18b5 源码版本spring-webmvc-4.3.7.RELEASE 使用Spring MVC的同学一般都 ...

  6. python trojan development 2nd —— use python to send mail and listen to the key board then combine them

    请勿用于非法用途!!!!!本人概不负责!!!原创作品,转载说明出处!!!!! from pynput.keyboard import Key,Listener import logging impor ...

  7. java线程的简单实用

    1.start(): 先来看看Java API中对于该方法的介绍: 使该线程开始执行:Java 虚拟机调用该线程的 run 方法. 结果是两个线程并发地运行:当前线程(从调用返回给 start 方法) ...

  8. C++标准库(体系结构与内核分析)(侯捷第一讲)

    一.C++标准库介绍 C++标准库:C++ Standard Library C++标准库与STL有什么关系: STL:Standard Template Library STL包含6大部件,基本占标 ...

  9. 【python3两小时快速入门】入门笔记01:基础

    又要我搞爬虫了,这次的源网站使用的ajax加载数据,我用java爬下来的页面内容部分全都是空,虽然java也有插件,但是使用起来感觉很麻烦,所以,python!老子来了.    1. 版本:pytho ...

  10. 解决IE8placeholder属性问题

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...