Sql-Server
在 Linux 上使用我的 SQL Server 創建數據庫時出現錯誤 5123
我按照本 MS指南的步驟操作,並設法執行 localdb 並使用此腳本創建一個 Testdb:
CREATE DATABASE Test ON (NAME='Test_DAT', FILENAME='/home/dlag/Documentos/Proyectos/BDtest/Test.mdf', SIZE=10, MAXSIZE=50, FILEGROWTH=5) LOG ON (NAME='Test_Log', FILENAME='/home/dlag/Documentos/Proyectos/BDtest/Test.ldf', SIZE=5, MAXSIZE=25, FILEGROWTH=5); GO use Test; GO
一段時間後,我嘗試使用以下腳本創建另一個數據庫:
CREATE DATABASE BconDatos2 ON (NAME='BconDatos2_DAT', FILENAME='/home/dlag/Documentos/Proyectos/BDs/BiblioConDatos2/BconDatos2.mdf', SIZE=10, MAXSIZE=50, FILEGROWTH=5) LOG ON (NAME='BconDatos2_Log', FILENAME='/home/dlag/Documentos/Proyectos/BDs/BiblioConDatos2/BconDatos2.ldf', SIZE=5, MAXSIZE=25, FILEGROWTH=5); GO use BconDatos2;
我得到這個錯誤:
Msg 5123, Level 16, State 1, Line 4
並且說(從西班牙語翻譯):
指令 CREATE FILE found OS error: 2(The system cannot find the file specified.) 試圖打開或創建物理文件時。’/home/dlag/Documentos/Proyectos/BDs/BiblioConDatos2/BconDatos2.mdf’。
Msg 1802, Level 16, State 4, Line 4
(從西班牙語翻譯):
創建數據庫錯誤。無法創建列表中的某些文件。查看相關錯誤
Total execution time: 00:00:00.081
在這兩個數據庫上,我都在 master 中,並且之前創建了 mdf 和 ldf 文件的路徑。
這很奇怪,因為在“測試”數據庫的腳本中,我可以為表創建 SELECTS,但是當我執行時:
SELECT Name from sys.Databases
這個數據庫沒有出現,但是後面創建的另一個空數據庫出現了。
無論如何,在“BconDatos2”數據庫腳本上,我無法創建數據庫……
腳本權限問題?
最後我解決了。問題在於 T-SQL 將要創建文件的目錄中的使用者權限。我讓創建數據庫的使用者“mssql”成為要放置數據庫文件的文件夾的所有者。
問題沒有解決,但我剛剛下載了為 linux 開發的軟體“Azure Data Studio”,我已經能夠看到這些表是在 master 中創建的。看來這個應用程序有效,並且現在對我學習 msslq 更方便。所以也許我們可以關閉這個文章。