2013-02-18 5 views
5

Chcę utworzyć bazę danych w procesie instalacji przy użyciu WiX 3.6. Śledziłem wiele tutoriali, ale myślę, że jest coś, co robię źle."Błąd -2147467259: nie udało się utworzyć bazy danych SQL" w WiX

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" 
    xmlns:sql="http://schemas.microsoft.com/wix/SqlExtension"> 

    <Product Id="{A704CA9E-2833-4276-A8A8-148F1047332F}" Name="DbInstallerTest" Language="1033" Version="1.0.0.0" Manufacturer="Microsoft" UpgradeCode="2de42bd8-acc2-48bf-b3c6-09745d3a2ea4"> 
     <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 

     <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 
     <MediaTemplate /> 

     <Feature Id="ProductFeature" Title="DbInstallerTest" Level="1"> 
      <ComponentGroupRef Id="ProductComponents" /> 
     </Feature> 
    </Product> 

    <Fragment> 
     <Directory Id="TARGETDIR" Name="SourceDir"> 
      <Directory Id="ProgramFilesFolder"> 
       <Directory Id="INSTALLFOLDER" Name="DbInstallerTest" /> 
      </Directory> 
     </Directory> 
    </Fragment> 

    <Fragment> 
     <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> 

      <Component Id="CMPDbInsatller" 
         Guid="{1749E57D-9CE4-42F8-924C-2A2E368B51E4}"> 
       <CreateFolder Directory="INSTALLFOLDER"/> 
       <util:User Id="SqlUser" 
          Name="sa" 
          Password="[email protected]"/> 
      </Component> 
      <Component Id="cmp2" 
         Guid="{C3596364-61A0-4628-9153-1BA11DB4B778}"> 
       <CreateFolder Directory="INSTALLFOLDER"/> 
       <sql:SqlDatabase Id="Id_db" 
           Database="TestDatabase1" 
           Server="(local)\SQLExpress" 
           CreateOnInstall="yes" 
           User="SqlUser" 
           DropOnUninstall="yes"> 
       </sql:SqlDatabase> 
      </Component> 
     </ComponentGroup> 
    </Fragment> 
</Wix> 

Powyższy kod zawiera następujący błąd.

Error -2147467259: failed to create SQL database: TestDatabase1. error detail: Unknown error.

Oto treść dziennika

=== Logging started: 2/18/2013 11:00:59 === 
Action 11:00:59: INSTALL. 
Action start 11:00:59: INSTALL. 
Action 11:00:59: FindRelatedProducts. Searching for related applications 
Action start 11:00:59: FindRelatedProducts. 
Action ended 11:00:59: FindRelatedProducts. Return value 1. 
Action 11:00:59: LaunchConditions. Evaluating launch conditions 
Action start 11:00:59: LaunchConditions. 
Action ended 11:00:59: LaunchConditions. Return value 1. 
Action 11:00:59: ValidateProductID. 
Action start 11:00:59: ValidateProductID. 
Action ended 11:00:59: ValidateProductID. Return value 1. 
Action 11:00:59: CostInitialize. Computing space requirements 
Action start 11:00:59: CostInitialize. 
Action ended 11:00:59: CostInitialize. Return value 1. 
Action 11:00:59: FileCost. Computing space requirements 
Action start 11:00:59: FileCost. 
Action ended 11:00:59: FileCost. Return value 1. 
Action 11:00:59: CostFinalize. Computing space requirements 
Action start 11:00:59: CostFinalize. 
Action ended 11:00:59: CostFinalize. Return value 1. 
Action 11:00:59: MigrateFeatureStates. Migrating feature states from related applications 
Action start 11:00:59: MigrateFeatureStates. 
Action ended 11:00:59: MigrateFeatureStates. Return value 0. 
Action 11:00:59: ExecuteAction. 
Action start 11:00:59: ExecuteAction. 
Action start 11:01:01: INSTALL. 
Action start 11:01:01: FindRelatedProducts. 
Action ended 11:01:01: FindRelatedProducts. Return value 0. 
Action start 11:01:01: LaunchConditions. 
Action ended 11:01:01: LaunchConditions. Return value 1. 
Action start 11:01:01: ValidateProductID. 
Action ended 11:01:01: ValidateProductID. Return value 1. 
Action start 11:01:01: CostInitialize. 
Action ended 11:01:01: CostInitialize. Return value 1. 
Action start 11:01:01: FileCost. 
Action ended 11:01:01: FileCost. Return value 1. 
Action start 11:01:01: CostFinalize. 
Action ended 11:01:01: CostFinalize. Return value 1. 
Action start 11:01:01: MigrateFeatureStates. 
Action ended 11:01:01: MigrateFeatureStates. Return value 0. 
Action start 11:01:01: InstallValidate. 
Action ended 11:01:01: InstallValidate. Return value 1. 
Action start 11:01:01: RemoveExistingProducts. 
Action ended 11:01:01: RemoveExistingProducts. Return value 1. 
Action start 11:01:01: InstallInitialize. 
Action ended 11:01:01: InstallInitialize. Return value 1. 
Action start 11:01:01: ProcessComponents. 
Action ended 11:01:01: ProcessComponents. Return value 1. 
Action start 11:01:01: UnpublishFeatures. 
Action ended 11:01:01: UnpublishFeatures. Return value 1. 
Action start 11:01:01: UninstallSqlData. 
Action ended 11:01:02: UninstallSqlData. Return value 1. 
Action start 11:01:02: RemoveFiles. 
Action ended 11:01:02: RemoveFiles. Return value 0. 
Action start 11:01:02: RemoveFolders. 
Action ended 11:01:02: RemoveFolders. Return value 1. 
Action start 11:01:02: CreateFolders. 
Action ended 11:01:02: CreateFolders. Return value 1. 
Action start 11:01:02: ConfigureUsers. 
Action start 11:01:02: CreateUserRollback. 
Action ended 11:01:02: CreateUserRollback. Return value 1. 
Action start 11:01:02: CreateUser. 
Action ended 11:01:02: CreateUser. Return value 1. 
Action ended 11:01:02: ConfigureUsers. Return value 1. 
Action start 11:01:02: InstallFiles. 
Action ended 11:01:02: InstallFiles. Return value 1. 
Action start 11:01:02: InstallSqlData. 
Action start 11:01:19: CreateDatabase. 
Action ended 11:01:19: CreateDatabase. Return value 1. 
Action ended 11:01:19: InstallSqlData. Return value 1. 
Action start 11:01:19: RegisterUser. 
Action ended 11:01:19: RegisterUser. Return value 1. 
Action start 11:01:19: RegisterProduct. 
Action ended 11:01:19: RegisterProduct. Return value 1. 
Action start 11:01:19: PublishFeatures. 
Action ended 11:01:19: PublishFeatures. Return value 1. 
Action start 11:01:19: PublishProduct. 
Action ended 11:01:19: PublishProduct. Return value 1. 
Action start 11:01:19: InstallFinalize. 
CreateDatabase: Error 0x80004005: failed to create to database: 'TestDatabase1', error: 

unknown error 
Error 26201. Error -2147467259: failed to create SQL database: TestDatabase1, error detail: 

unknown error. 
MSI (s) (94!44) [11:01:47:973]: Product: DbInstallerTest -- Error 26201. Error -2147467259: 

failed to create SQL database: TestDatabase1, error detail: unknown error. 

CustomAction CreateDatabase returned actual error code 1603 (note this may not be 100% 

accurate if translation happened inside sandbox) 
Action ended 11:01:47: InstallFinalize. Return value 3. 
Action ended 11:01:48: INSTALL. Return value 3. 
Action ended 11:01:48: ExecuteAction. Return value 3. 
Action ended 11:01:48: INSTALL. Return value 3. 
=== Logging stopped: 2/18/2013 11:01:48 === 
MSI (c) (C0:94) [11:01:48:208]: Product: DbInstallerTest -- Installation failed. 

MSI (c) (C0:94) [11:01:48:209]: Windows Installer installed the product. Product Name: 

DbInstallerTest. Product Version: 1.0.0.0. Product Language: 1033. Manufacturer: Microsoft. 

Installation success or error status: 1603. 

Co robię źle tutaj?

Odpowiedz

2

Err 26201 jest bardziej przydatny. Powinieneś również zobaczyć więcej informacji w dziennikach zdarzeń.

Twój kod wskazuje, że używasz trybu mieszanego w instancji SQL i uwierzytelniasz jako login SQL. Oznacza to, że problem jest prawdopodobnie taki, że twoje konto usługi SQL nie ma uprawnień do tworzenia plików MDF i LDF w domyślnych lokalizacjach.

Zobacz ten wątek, aby uzyskać więcej informacji:

Error 26201. Error -2147467259: failed to create SQL database

6

Mamy gonił ten błąd wokół na tydzień przed wreszcie rozwiązywania go, przechodząc do SQL konfiguracji   Server Configuration Manager → Protokoły → SQL Server Network dla MSSQLSERVER (dla nas, domyślna instancja) → Włączanie nazwanych potoków i protokołów TCP/IP.

1

Dostaję także błąd w moich dziennikach instalatora WiX również, choć trochę inaczej.

Środowisko:

  • WebSerwer = Windows 2008 R2
  • SQLServer = Windows 2008 32-bit z SQL Server 2008 R2 Standard
  • uwierzytelniania w trybie mieszanym
  • Domyślnie SQL Instance

Błąd:

ExecuteSqlStrings: Entering ExecuteSqlStrings in C:\Windows\Installer\MSI1EC7.tmp, version 3.6.3303.0

ExecuteSqlStrings: Error 0x80004005: failed to connect to database: 'DatabaseNameBla'

Error 26203. Failed to connect to SQL database. (-2147467259 DatabaseNameBla ) MSI (s) (20!30) [10:16:32:225]: Product: Bla Services -- Error 26203. Failed to connect to SQL database. (-2147467259 DatabaseNameBla )

Badania:

  • Instancja DB wydaje się mieć tylko 1,6 GB pozostawione na dysku twardym. < < To może być złe ...
  • Mój użytkownik to sysadmin
  • Dostęp za pomocą narzędzi do zarządzania SQL nie ma problemów z tym samym użytkownikiem.
  • Dzienniki SLQ nie mają w nich nic do pomocy przy błędzie. Tylko hałas.

Moje rozwiązanie:

  • VM ma dysk D z 50 GB wolnego
  • nową instancję bazy danych na dysku D
  • nową instancję ustawiona na tryb mieszany
  • ponownie zainstalowany. Powodzenie!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Podsumowanie:

Więc po godzinach próbuje dowiedzieć się, jaka była umowa. W przypadku tego błędu był on związany z rozmiarem wolnego miejsca na dysku twardym. Ponieważ serwer SQL był w produkcji, nie można było rozwinąć dysku C, aby sprawdzić, czy to naprawiło domyślną instancję.

2

Miałem też do czynienia z tym problemem i przeglądałem wiele forów, aby rozwiązać ten problem. To była jedyna rzecz, która zadziałała dla mnie. Na moim komputerze, tworzenie bazy danych SQL Server Express Edition nie powiodła się -2147467259: nie udało się utworzyć bazę danych SQL:

After days of hacking I finally found the solution! All you need to do is use .\sqlexpress instead of localhost\sqlexpress or 127.0.0.1\sqlexpress in your connection string. I think (and I might be terribly wrong here) when you use .\sqlexpress in connection string installer uses Shared Memory instead of Named Pipes or TCP/IP.

Źródło: Solution to -2147467259: failed to create SQL database

Powiązane problemy