關於LOCALDB的詳細文檔說明,包含安裝,連接,共享連接等操作 https://technet.microsoft.com/zh-cn/hh510202
目的:
調試程序沒有安裝 sql server時,可以使用localdb.這是一個簡易的sql server數據庫,用於本地測試是很方便,省去安裝SQL SERVER的工作
環境:
安裝了VS2013 VS2015 MSSM2016,但沒有安裝sql server. W10系統
安裝:localdb
安裝VS2015之后,就有了localdb2016 VS2013大概是2014 ,
另外localdb2014有單獨的安裝包,而2016則沒找到.VS2015的安裝包里有LOCALDB2016的MSI文件,但是安裝之后卻無法使用.
使用命令查看版本,如下:
使用:
了解到localdb這個東西已經安裝了,但一時不知道如何使用.網上找答案使用方式如下:
1.打開CMD,使用sqllocaldb.exe 這個命令
sqllocaldb.exe i // 查看已經有的localdb的實例
sqllocaldb.exe v // 電腦上安裝的localdb的所有版本
sqllocaldb.exe s [實例名] // 啟動這個實例
sqllocaldb.exe -? // 這個命令的幫助信息
2.如何使用MSSM連接這個實例:
打開MSSM,服務器名稱那里輸入 (localdb)\MSSQLLocalDB // 括號里面是 localdb 這個可能是固定的,我沒改 反扛后面就是實例的名字.
然后就連接上了,可以建庫建數據了
3.這個連接字符串的server值也要寫成這種
server=(localdb)\MSSQLLocalDB
4.連接串:
在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
使用這幾種連接串在VS中使用IISEXPRESS調試時,沒有問題,但是發布到IIS中,卻連接不上數據庫.因為訪問權限的問題.細節請看文章第一行鏈接.
解決辦法是:
1.將應用程序池的權限改為localsystem 這個投機的辦法,比較省事.但是問題還是很多.
2.打開LocalDB 實例共享:(這個總結起來就是,給LOCALDB開共享實例,給LOCALDB設定連接帳號,這是測試可行的辦法)
給LOCALDB開共享實例
// MSSQLLocalDB:實例名 mylocaldb 為實例名取的共享實例別名,其它帳戶連接時通過這個別名 (命令窗口要使用管理員權限那種)
>sqllocaldb h "MSSQLLocalDB" "mylocaldb"
// 使用MSSM連接工具連接時,也要使用管理員權限打開.實例名變成 (localdb)\.\mylocaldb 第一個\后面的.\mylocaldb 就是共享實例別名
為什么上面的MSSM要使用管理員工具打開,因為下面的驗證方式是帳號密碼形式的,如果使用WINDOWS驗證,則不需要.
給LOCALDB設定連接帳號
到這步之后,將WEB程序的連接字符串寫成指定帳號和密碼的這種,結果依然不能訪問,還是沒有權限,
server=(localdb)\.\mylocaldb;uid=sa;pwd=123456;AttachDbFileName=D:\Data\MyDB1.mdf
查看數據庫帳號,發現LOCALDB並沒有SA這個帳號,於是加上它,並且給於 DB_OWNER
最后,在瀏覽器中打開程序,發現連接成功,網頁打開了..