Pouvez-vous donner une raison pour laquelle ce serait une chose utile à avoir? Sinon, je pense que cela mérite d'être clos car ce n'est pas une vraie question. SQLite n'est pas une base de données client-serveur et est vraiment commercialisé auprès de la foule qui n'a pas besoin d' une base de données client-serveur.
jcolebrand
1
@Eelke bien que ce ne soit plus vrai en mode WAL à partir de la version 3.7 - il ne peut y avoir qu'une seule écriture à la fois, mais "les lecteurs ne bloquent pas les écrivains et un écrivain ne bloque pas les lecteurs"
Pourquoi? Je pense que vous devriez définir vos besoins ... et peut-être trouverez-vous une base de données plus appropriée ...
AK_
3
@AK_ Les principales exigences sont un ACID complet et une base de données très simple à développer et à utiliser. Nous avons construit une version personnalisée pour fonctionner en tant que client-serveur et le résultat est tout simplement incroyable! Les gens sous-estiment la capacité SQLite et le besoin excessif de concurrence pour les petites entreprises. Les gens doivent faire preuve d'ouverture d'esprit. Suivre la recette n'est pas la seule voie à suivre. Nous avons maintenant un produit sans concurrence sur notre marché.
Maniero
Réponses:
25
SQLite est une base de données intégrée et n'est pas destinée à être utilisée comme base de données client / serveur. Si vous le voulez vraiment, vous pouvez utiliser SQLitening .
Qu'est-ce que SQLitening?
SQLitening est une implémentation client / serveur de la très populaire base de données SQLite.
SQLitening est une bibliothèque de programmeur sous forme de DLL Win32 standard. Il est installé en tant que service Windows standard. En plus du mode client / serveur, la bibliothèque permet au programmeur d'accéder également aux bases de données SQLite en mode local. Dans les deux modes (local ou client / serveur), la base de données est extrêmement rapide et robuste. - Source: http://www.planetsquires.com/sqlite_client_server.htm
Est-ce considéré comme "client-serveur" parce que vous avez chiffré la connexion?
Robert Harvey
Non, c'est simplement à cause d'un réseau entre la machine qui héberge la base de données et la machine accédant à la base de données.
ddeimeke
4
Non, SQLite ne présente pas de point de terminaison réseau - il n'est accessible que via le système de fichiers. Il prend en charge l'accès simultané à partir de plusieurs processus sur la même machine mais à un niveau très grossier (DML verrouille une table entière). Donc, vous pourriez avoir une douzaine de processus Apache httpd tous avec une base de données SQLite sur le disque local ouvert, tous faisant des SELECTs et cela fonctionnerait très bien. Mais vraiment, ce n'est pas le bon outil pour le travail - j'utiliserais Postgres dans ce scénario.
verrouille une table entière Seulement lorsque vous écrivez dessus sans lire de nombreux processeurs peuvent lire à partir de la même table;)
ucefkh
3
Paradigma Software présente Valentina Server 6.0 (en test bêta maintenant), qui est 3 en 1:
Serveur Valentina DB
Valentina SQLite Server
Serveur de rapports Valentina
SQLite Server utilise le moteur SQLite sans modifications, WAL activé. SQLite Server fonctionne sur 3 OS: Mac, Win, Linux .
Vous pouvez utiliser l'application Valentina Studio (gratuite) pour gérer ce serveur DB, ainsi que mySQL, postgreSQL, SQLite, MS SQL. Il fonctionne également comme une application native en C ++ sur 3 OS.
SQLite Server contient des fonctionnalités telles que: SSL, ACL, sauvegardes, API REST, canaux de notification, JSON, XML.
À l'heure actuelle, l'accès à ce serveur peut se faire à partir de C ++, Xojo et LiveCode. Bientôt seront ajoutés PHP, Java, .NET.
Vous pouvez utiliser un service similaire à dropbox . Il existe des solutions auto-hébergées. Cependant, SQLite3 n'a pas été créé pour un modèle client-serveur. Vous seriez mieux avec d'autres solutions qui ont été développées au sol par modèle client-serveur.
Dropbox et d'autres services de synchronisation de fichiers NE SONT PAS une solution à ce problème. Dropbox ne contient aucune logique concernant la fusion des modifications dans une base de données vers laquelle plusieurs utilisateurs écrivent simultanément. Le résultat final sera la perte de données, de travail et de temps.
Réponses:
SQLite est une base de données intégrée et n'est pas destinée à être utilisée comme base de données client / serveur. Si vous le voulez vraiment, vous pouvez utiliser SQLitening .
Qu'est-ce que SQLitening?
la source
Comme indiqué précédemment, sqlite n'est pas une application client-serveur et il n'est pas conçu pour des opérations hautement simultanées.
Néanmoins vous pouvez "en faire client-serveur", si vous utilisez ssh.
travaux.
la source
Non, SQLite ne présente pas de point de terminaison réseau - il n'est accessible que via le système de fichiers. Il prend en charge l'accès simultané à partir de plusieurs processus sur la même machine mais à un niveau très grossier (DML verrouille une table entière). Donc, vous pourriez avoir une douzaine de processus Apache httpd tous avec une base de données SQLite sur le disque local ouvert, tous faisant des
SELECT
s et cela fonctionnerait très bien. Mais vraiment, ce n'est pas le bon outil pour le travail - j'utiliserais Postgres dans ce scénario.la source
Paradigma Software présente Valentina Server 6.0 (en test bêta maintenant), qui est 3 en 1:
SQLite Server utilise le moteur SQLite sans modifications, WAL activé. SQLite Server fonctionne sur 3 OS: Mac, Win, Linux .
Vous pouvez utiliser l'application Valentina Studio (gratuite) pour gérer ce serveur DB, ainsi que mySQL, postgreSQL, SQLite, MS SQL. Il fonctionne également comme une application native en C ++ sur 3 OS.
SQLite Server contient des fonctionnalités telles que: SSL, ACL, sauvegardes, API REST, canaux de notification, JSON, XML.
À l'heure actuelle, l'accès à ce serveur peut se faire à partir de C ++, Xojo et LiveCode. Bientôt seront ajoutés PHP, Java, .NET.
La version gratuite de Valentina Server comprend
Détails que vous pouvez lire dans l' article .
la source
SQLabs propose un produit commercial appelé cubeSQL qui peut répondre à vos besoins.
la source
Vous pouvez pirater quelque chose ensemble en utilisant netcat , mais je ne peux pas imaginer que ce serait une solution très élégante.
la source
Vous pouvez utiliser un service similaire à dropbox . Il existe des solutions auto-hébergées. Cependant, SQLite3 n'a pas été créé pour un modèle client-serveur. Vous seriez mieux avec d'autres solutions qui ont été développées au sol par modèle client-serveur.
la source