Czy możesz podać powód, dla którego byłoby to przydatne? W przeciwnym razie uważam, że zasługuje na zamknięcie jako nie prawdziwe pytanie. SQLite nie jest bazą danych klient-serwer i jest naprawdę sprzedawany do tłumu, który nie potrzebuje bazy danych klient-serwer.
jcolebrand
1
@Eelke, chociaż nie jest to już prawdą w trybie WAL od wersji 3.7 - może być tylko jeden zapis na raz, ale „czytelnicy nie blokują pisarzy, a pisarz nie blokuje czytników”
Czemu? Myślę, że powinieneś zdefiniować swoje wymagania ... a może znajdziesz bardziej odpowiednią bazę danych ...
AK_
3
@AK_ Główne wymagania to pełna wersja ACID i bardzo prosta baza danych do opracowania i użytkowania. Stworzyliśmy niestandardową wersję do pracy jako klient-serwer, a wynik jest po prostu niesamowity! Ludzie nie doceniają zdolności SQLite i przeceniają potrzebę współbieżności dla małych firm. Ludzie muszą otworzyć umysł. Postępuj zgodnie z przepisem nie jest jedynym sposobem, aby przejść. Teraz mamy produkt bez konkurencji na naszym rynku.
Maniero,
Odpowiedzi:
25
SQLite jest osadzoną bazą danych i nie jest przeznaczona do użycia jako baza danych klient / serwer. Jeśli naprawdę chcesz, możesz użyć SQLitening .
Co to jest SQLitening
SQLitening to implementacja bardzo popularnej bazy danych SQLite typu klient / serwer.
SQLitening to biblioteka programisty w standardowej formie Win32 DLL. Jest instalowany jako standardowa usługa systemu Windows. Oprócz trybu klient / serwer biblioteka umożliwia programiście dostęp do baz danych SQLite w trybie lokalnym. W obu trybach (lokalny lub klient / serwer) baza danych jest wyjątkowo szybka i niezawodna. - Źródło: http://www.planetsquires.com/sqlite_client_server.htm
Czy jest to uważane za „klient-serwer”, ponieważ szyfrowałeś połączenie?
Robert Harvey
Nie, dzieje się tak tylko z powodu sieci między maszyną, która hostuje bazę danych, a maszyną uzyskującą dostęp do bazy danych.
ddeimeke
4
Nie, SQLite nie przedstawia punktu końcowego sieci - jest dostępny tylko przez system plików. To nie obsługują jednoczesny dostęp z wielu procesów na tym samym komputerze, ale w bardzo gruboziarnistych poziomie (DML blokuje całą tabelę). Więc możesz mieć kilkanaście procesów Apache httpd wszystkie z otwartą bazą danych SQLite na dysku lokalnym, wszystkie robią SELECTs i wszystko będzie dobrze. Ale tak naprawdę to niewłaściwe narzędzie do pracy - w tym scenariuszu użyłbym Postgres .
blokuje cały stół Tylko wtedy, gdy piszesz na nim, nie czytając wielu
procesorów
3
Oprogramowanie Paradigma wprowadza Valentina Server 6.0 (obecnie w fazie testów beta), czyli 3 w 1:
Valentina DB Server
Valentina SQLite Server
Serwer raportów Valentina
Serwer SQLite korzysta z silnika SQLite bez zmian, włączony WAL. SQLite Server działa na 3 systemach operacyjnych: Mac, Win, Linux .
Możesz używać Valentina Studio (darmowa) aplikacja do zarządzania tym serwerem DB, a także mySQL, postgreSQL, SQLite, MS SQL. Działa również jako natywna aplikacja C ++ na 3 systemach operacyjnych.
Serwer SQLite zawiera takie funkcje, jak: SSL, ACL, kopie zapasowe, REST API, kanały powiadomień, JSON, XML.
W tej chwili dostęp do tego serwera można uzyskać z C ++, Xojo i LiveCode. Wkrótce zostaną dodane PHP, Java, .NET.
Możesz skorzystać z usługi podobnej do dropbox . Istnieją rozwiązania hostowane samodzielnie. Jednak SQLite3 nie został stworzony dla modelu klient-serwer. Lepiej skorzystasz z innych rozwiązań opracowanych od podstaw przez model klient-serwer.
Dropbox i inne usługi synchronizacji plików NIE SĄ rozwiązaniem tego problemu. Dropbox nie zawiera żadnej logiki dotyczącej scalania zmian w bazie danych, do których jednocześnie pisze wielu użytkowników. Efektem końcowym będą utracone dane, praca i czas.
Odpowiedzi:
SQLite jest osadzoną bazą danych i nie jest przeznaczona do użycia jako baza danych klient / serwer. Jeśli naprawdę chcesz, możesz użyć SQLitening .
Co to jest SQLitening
źródło
Jak wspomniano wcześniej, sqlite nie jest aplikacją klient-serwer i nie jest budowany do wysoce współbieżnych operacji.
Niemniej jednak możesz „zrobić to klient-serwer”, jeśli używasz ssh.
Prace.
źródło
Nie, SQLite nie przedstawia punktu końcowego sieci - jest dostępny tylko przez system plików. To nie obsługują jednoczesny dostęp z wielu procesów na tym samym komputerze, ale w bardzo gruboziarnistych poziomie (DML blokuje całą tabelę). Więc możesz mieć kilkanaście procesów Apache httpd wszystkie z otwartą bazą danych SQLite na dysku lokalnym, wszystkie robią
SELECT
s i wszystko będzie dobrze. Ale tak naprawdę to niewłaściwe narzędzie do pracy - w tym scenariuszu użyłbym Postgres .źródło
Oprogramowanie Paradigma wprowadza Valentina Server 6.0 (obecnie w fazie testów beta), czyli 3 w 1:
Serwer SQLite korzysta z silnika SQLite bez zmian, włączony WAL. SQLite Server działa na 3 systemach operacyjnych: Mac, Win, Linux .
Możesz używać Valentina Studio (darmowa) aplikacja do zarządzania tym serwerem DB, a także mySQL, postgreSQL, SQLite, MS SQL. Działa również jako natywna aplikacja C ++ na 3 systemach operacyjnych.
Serwer SQLite zawiera takie funkcje, jak: SSL, ACL, kopie zapasowe, REST API, kanały powiadomień, JSON, XML.
W tej chwili dostęp do tego serwera można uzyskać z C ++, Xojo i LiveCode. Wkrótce zostaną dodane PHP, Java, .NET.
Darmowa wersja Valentina Server obejmuje
Szczegóły można przeczytać w artykule .
źródło
SQLabs oferuje komercyjny produkt o nazwie cubeSQL, który może odpowiadać Twoim potrzebom.
źródło
Możesz zhakować coś razem za pomocą NetCata , ale nie wyobrażam sobie, aby byłoby to bardzo eleganckie rozwiązanie.
źródło
Możesz skorzystać z usługi podobnej do dropbox . Istnieją rozwiązania hostowane samodzielnie. Jednak SQLite3 nie został stworzony dla modelu klient-serwer. Lepiej skorzystasz z innych rozwiązań opracowanych od podstaw przez model klient-serwer.
źródło