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