In der Berkeley-DB-Dokumentation wird angegeben, dass die Gründe, die folgend sein:Wie ermittelt man den genauen Grund, warum gibt Berkeley db EINVAL auf db-> open zurück?
Ein ungültiger Flag-Wert oder Parameter angegeben wurde (zB unbekannter Datenbanktyp, Seitengröße, Hash-Funktion, Pad-Byte, Byte-Reihenfolge) oder ein Flag-Wert oder Parameter, der nicht mit der angegebenen Datenbank kompatibel ist. Das DB_THREAD Flag wurde angegeben und schnelle Mutexe sind für diese Architektur nicht verfügbar.
DB_THREAD Die Flagge wurde auf db- angegeben> offen, aber war nicht auf die angegebene DB_ENV-> offenen Aufruf für die Umwelt, in der der Handgriff DB erstellt wurde.
Eine flache Textdatei für die Sicherung wurde entweder mit dem DB_THREAD-Flag angegeben oder die bereitgestellte Datenbankumgebung unterstützt die Transaktionsverarbeitung.
Das einzige Flag, das ich verwende, ist DB_CREATE, der Datenbanktyp ist DB_BTREE.
Ich möchte den genauen Grund wissen, die zu EINVAL führen, aber ich fand keine Ausführlichkeit Konfiguration, die mir innerhalb "DB" Struktur helfen könnte (in DB_ENV, sie haben set_verbose Methode, aber ich verwende nicht DB_ENV).