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. 在Qt工程中加Boost

    摘要: Boost是一个很强大的C++库,堪比STL,里面有很多非常优秀的类库.我不多介绍,详情见官网:http://www.boost.org/ 要在我们的Qt工程中把这个库加进去应该怎么做呢?我今 ...

  2. x64内联汇编调用API(需intel编译器,vc不支持x64内联汇编)

    #include "stdafx.h" #include <windows.h> STARTUPINFOW StartInfo  = {0}; PROCESS_INFO ...

  3. CheckSynchronize实现的不必要的复杂

    在system.classes单元中,CheckSynchronize在ThreadLock上持续调用TMonitor的Exit和Enter以保护SyncList. 因为代码做的第一件事是换出Sync ...

  4. postgres数据库小记

    因为工作中需要查询其他部门数据库,刚好是postgres数据库,用python链接的话,可以用psycopg2库,具体用法其实和MysqlDB是一样的,就是安装的时候遇到点问题. 安装的时候,提示: ...

  5. Kafka笔记5

    Kafka使用zookeeper来维护集群成员的信息.每个broker都有一个唯一标识符,这个标识符可以在配置文件指定,也可以自动生成. 在broker停机,出现网络分区或者长时间垃圾回收停顿时,br ...

  6. 如何理解<T extends Comparable<? super T>>

    在看java容器类的时候经常可以看到<T extends Comparable<? super T>>,感觉十分不解? 我们觉得<T extends Comparable ...

  7. 从零开始实现放置游戏(七)——实现挂机战斗(5)RMS系统后台参数校验

    前面几章实现了在RMS系统中进行数据的增删查改以及通过Excel批量导入.但仍有遗留的问题,比如在新增或编辑时,怪物的生命值.护甲等数据我们可以输入负值,这种数据是不合理且没有意义的.本章我们就实现服 ...

  8. JS数据结构第四篇 --- 栈

    一.什么是数据结构栈 在数据结构中有一个栈结构,在内存空间中也有一个栈空间,这两个”栈“是两个不同的概念.这篇我们说的是数据结构中的栈.栈是一种特殊的线性表,特殊性在哪?就是只能在栈顶进行操作,往栈顶 ...

  9. Mysql常用的查询语句,记录一下,好东西大家共享

    一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,=>,= ...

  10. 手把手docker部署java应用(初级篇)

    本篇原创发布于 Flex 的个人博客:点击跳转 前言   在没有 docker 前,项目转测试是比较麻烦的一件事.首先会化较长的时间搭建测试环境,然后在测试过程中又经常出现测试说是 bug,开发说无法 ...