Können Sie einen Grund nennen, warum dies eine nützliche Sache wäre? Ansonsten denke ich, dass es das Schließen verdient, da es keine echte Frage ist. SQLite ist keine Client-Server - Datenbank und wird wirklich in die Menge vermarktet, die nicht benötigen eine Client-Server - Datenbank.
Jcolebrand
1
@Eelke, obwohl dies im WAL-Modus ab Version 3.7 nicht mehr zutrifft - es kann immer nur einen Schreibzugriff geben, aber "Leser blockieren keine Schreiber und ein Schreiber blockiert keine Schreiber"
Warum? Ich denke, Sie sollten Ihre Anforderungen definieren ... und vielleicht finden Sie eine passendere Datenbank ...
AK_
3
@AK_ Die Hauptanforderungen sind eine vollständige ACID und eine sehr einfach zu entwickelnde und zu verwendende Datenbank. Wir haben eine benutzerdefinierte Version erstellt, die als Client-Server fungiert, und das Ergebnis ist einfach unglaublich! Die Leute unterschätzen die SQLite-Kapazität und überschätzen das Bedürfnis nach Parallelität mit kleinen Unternehmen. Die Menschen müssen offen sein. Befolgen Sie das Rezept ist nicht der einzige Weg zu gehen. Jetzt haben wir ein Produkt ohne Wettbewerb auf unserem Markt.
Maniero
Antworten:
25
SQLite ist eine eingebettete Datenbank und nicht zur Verwendung als Client / Server-Datenbank vorgesehen. Wenn Sie wirklich wollen, können Sie SQLitening verwenden .
Was ist SQLitening?
SQLitening ist eine Client / Server-Implementierung der sehr beliebten SQLite-Datenbank.
SQLitening ist eine Programmierbibliothek in Standard-Win32-DLL-Form. Es wird als Standard-Windows-Dienst installiert. Zusätzlich zum Client / Server-Modus kann der Programmierer mit der Bibliothek auch im lokalen Modus auf SQLite-Datenbanken zugreifen. In beiden Modi (lokal oder Client / Server) ist die Datenbank extrem schnell und robust. - Quelle: http://www.planetsquires.com/sqlite_client_server.htm
Können Sie einen Link zu Was ist SQLitening? Dieser Link führt zu einem Forum und sagt nichts darüber aus, was es eigentlich ist.
develCuy
17
Wie bereits erwähnt, handelt es sich bei sqlite nicht um eine Client-Server-Anwendung, und es ist nicht für gleichzeitig ausgeführte Vorgänge konzipiert.
Trotzdem können Sie "es Client-Server machen", wenn Sie ssh verwenden.
Wird dies als "Client-Server" betrachtet, weil Sie die Verbindung verschlüsselt haben?
Robert Harvey
Nein, es liegt nur an einem Netzwerk zwischen der Maschine, auf der sich die Datenbank befindet, und der Maschine, die auf die Datenbank zugreift.
Ddeimeke
4
Nein, SQLite stellt keinen Netzwerkendpunkt zur Verfügung, sondern kann nur über das Dateisystem aufgerufen werden. Es tut den gleichzeitigen Zugriff von mehreren Prozessen auf der gleichen Maschine unterstützen , aber in einem sehr grobkörnig Ebene (DML sperrt eine ganze Tabelle). Sie könnten also ein Dutzend Apache-httpd-Prozesse haben, die alle mit einer SQLite-Datenbank auf der lokalen Festplatte geöffnet sind SELECT. Aber wirklich, es ist das falsche Werkzeug für den Job - ich würde in diesem Szenario Postgres verwenden.
sperrt eine ganze Tabelle Nur wenn Sie darauf schreiben und nicht viele
Prozessoren
3
Paradigma Software stellt Valentina Server 6.0 vor (jetzt in der Beta-Testphase), also 3 in 1:
Valentina DB Server
Valentina SQLite Server
Valentina Berichtsserver
SQLite Server verwendet die SQLite-Engine ohne Änderungen, WAL aktiviert. SQLite Server funktioniert unter 3 Betriebssystemen: Mac, Win, Linux .
Sie können die (kostenlose) Valentina Studio-Anwendung zum Verwalten dieses DB-Servers sowie von mySQL, postgreSQL, SQLite und MS SQL verwenden. Es funktioniert auch als native C ++ - Anwendung unter 3 Betriebssystemen.
Sie können einen ähnlichen Dienst wie dropbox verwenden . Dort selbst gehostete Lösungen. SQLite3 wurde jedoch nicht für ein Client-Server-Modell erstellt. Mit anderen Lösungen, die auf Basis des Client-Server-Modells entwickelt wurden, können Sie besser umgehen.
Dropbox und andere Dateisynchronisierungsdienste SIND KEINE Lösung für dieses Problem. Dropbox enthält keine Logik zum Zusammenführen von Änderungen in einer Datenbank, in die mehrere Benutzer gleichzeitig schreiben. Das Endergebnis ist ein Verlust von Daten, Arbeit und Zeit.
Antworten:
SQLite ist eine eingebettete Datenbank und nicht zur Verwendung als Client / Server-Datenbank vorgesehen. Wenn Sie wirklich wollen, können Sie SQLitening verwenden .
Was ist SQLitening?
quelle
Wie bereits erwähnt, handelt es sich bei sqlite nicht um eine Client-Server-Anwendung, und es ist nicht für gleichzeitig ausgeführte Vorgänge konzipiert.
Trotzdem können Sie "es Client-Server machen", wenn Sie ssh verwenden.
funktioniert.
quelle
Nein, SQLite stellt keinen Netzwerkendpunkt zur Verfügung, sondern kann nur über das Dateisystem aufgerufen werden. Es tut den gleichzeitigen Zugriff von mehreren Prozessen auf der gleichen Maschine unterstützen , aber in einem sehr grobkörnig Ebene (DML sperrt eine ganze Tabelle). Sie könnten also ein Dutzend Apache-httpd-Prozesse haben, die alle mit einer SQLite-Datenbank auf der lokalen Festplatte geöffnet sind
SELECT
. Aber wirklich, es ist das falsche Werkzeug für den Job - ich würde in diesem Szenario Postgres verwenden.quelle
Paradigma Software stellt Valentina Server 6.0 vor (jetzt in der Beta-Testphase), also 3 in 1:
SQLite Server verwendet die SQLite-Engine ohne Änderungen, WAL aktiviert. SQLite Server funktioniert unter 3 Betriebssystemen: Mac, Win, Linux .
Sie können die (kostenlose) Valentina Studio-Anwendung zum Verwalten dieses DB-Servers sowie von mySQL, postgreSQL, SQLite und MS SQL verwenden. Es funktioniert auch als native C ++ - Anwendung unter 3 Betriebssystemen.
SQLite Server enthält Funktionen wie: SSL, ACL, Backups, REST-API, Benachrichtigungskanäle, JSON, XML.
Der Zugriff auf diesen Server kann derzeit über C ++, Xojo und LiveCode erfolgen. In Kürze werden PHP, Java, .NET hinzugefügt.
Kostenlose Version von Valentina Server enthält
Details können Sie im Artikel lesen .
quelle
SQLabs bietet ein kommerzielles Produkt namens cubeSQL an , das möglicherweise Ihren Anforderungen entspricht.
quelle
Sie könnten mit netcat etwas zusammen hacken , aber ich kann mir nicht vorstellen, dass es eine sehr elegante Lösung wäre.
quelle
Sie können einen ähnlichen Dienst wie dropbox verwenden . Dort selbst gehostete Lösungen. SQLite3 wurde jedoch nicht für ein Client-Server-Modell erstellt. Mit anderen Lösungen, die auf Basis des Client-Server-Modells entwickelt wurden, können Sie besser umgehen.
quelle