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. FMX有两种消息处理的实现方式,一种是用TMessageManager来实现自定义的消息,另外一种象TEdit中的实现,直接声明消息方法(firemonkey messaging)

    看FMX代码,发现有两种消息处理的实现方式,一种是用TMessageManager来实现自定义的消息,另外一种象TEdit中的实现,直接声明消息方法.   早前,看过文章说TMessageManage ...

  2. Qt5图形视图框架的“俄罗斯方块”(使用了QGraphicsView)

    Qt5 图形视图框架QGraphicsView 1.图形视图框架包含三大类:场景类(QGraphicsScene),视图类(QGraphicsView),图元类(QGraphicsItem): 2.对 ...

  3. sublime3使用笔记

    1.ctrl+n 新建一个文件: 2.alt+shift+数字 分屏显示: 3.ctrl+alt+down(向下键) 连选很多行的指定开始位置: 如图: 紧接着再按shift+right(选中需要更改 ...

  4. ParrotSec 中文社区 QQ群认证 Openssl解密

    ParrotSec 中文社区 QQ群认证 Openssl解密 下载Key.txt 打开parrot 系统,复制文件到系统.打开命令行输入 openssl enc -aes-256-cfb -d -in ...

  5. python基础--定义装饰器(内置装饰器)

    装饰器的定义: 装饰器本质上就是一个python函数,它可以让其它函数在不需要做任何代码改动的前提下增加额外的功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景中,比如-- >插入 ...

  6. Python操作ElasticSearch

    Python批量向ElasticSearch插入数据 Python 2的多进程不能序列化类方法, 所以改为函数的形式. 直接上代码: #!/usr/bin/python # -*- coding:ut ...

  7. 15 | 过不了的坎:聊聊GUI自动化过程中的测试数据

  8. java中Object源码理解

    java阅读笔记 1.object getClass() 返回是的此object运行时的类,返回的对象是被object锁定的对象,调用这个方法不需要进行强转 public static void ma ...

  9. Fire! UVA - 11624 (两步bfs)

    题目链接 题意 人要从迷宫走出去,火会向四个方向同时扩散 分析 两步bfs,先出火到达各地时的时间(设初始时间为0,人每走一步为1s,在着一步内火可以向四周可触及的方向同时扩散),然后在bfs人,人能 ...

  10. 真实项目中 ThreadLocal 的妙用

    一.什么是 ThreadLocal ThreadLocal 提供了线程的局部变量,每个线程都可以通过 set() 和 get() 来对这个局部变量进行操作,但不会和其他线程的局部变量冲突,实现了线程间 ...