¿Puedes dar una razón por la cual sería útil tener esto? De lo contrario, creo que merece ser cerrado ya que no es una pregunta real. SQLite no es una base de datos cliente-servidor y se comercializa realmente entre la multitud que no necesita una base de datos cliente-servidor.
jcolebrand
1
@Eelke, aunque esto ya no es cierto en el modo WAL desde la versión 3.7 : solo puede haber una escritura a la vez, pero "los lectores no bloquean a los escritores y un escritor no bloquea a los lectores"
¿Por qué? Creo que debería definir sus requisitos ... y tal vez encuentre una base de datos más adecuada ...
AK_
3
@AK_ Los requisitos principales son ACID completo y una base de datos muy simple para desarrollar y usar. ¡Creamos una versión personalizada para trabajar como cliente-servidor y el resultado es simplemente increíble! La gente está subestimando la capacidad de SQLite y sobrevalorando la necesidad de concurrencia con las pequeñas empresas. La gente necesita abrir la mente. Seguir la receta no es el único camino a seguir. Ahora tenemos un producto sin competencia en nuestro mercado.
Maniero
Respuestas:
25
SQLite es una base de datos incrustada y no está destinada a ser utilizada como base de datos cliente / servidor. Si realmente quieres, puedes usar SQLitening .
Qué es SQLitening
SQLitening es una implementación cliente / servidor de la muy popular base de datos SQLite.
SQLitening es una biblioteca de programadores en forma estándar de DLL Win32. Se instala como un servicio estándar de Windows. Además del modo cliente / servidor, la biblioteca permite que el programador también acceda a bases de datos SQLite en modo local. En cualquiera de los modos (local o cliente / servidor), la base de datos es extremadamente rápida y robusta. - Fuente: http://www.planetsquires.com/sqlite_client_server.htm
¿Se considera esto "cliente-servidor" porque ha cifrado la conexión?
Robert Harvey
No, es solo debido a una red entre la máquina que aloja la base de datos y la máquina que accede a la base de datos.
ddeimeke
4
No, SQLite no presenta un punto final de red, solo es accesible a través del sistema de archivos. Se hace apoyar el acceso simultáneo de múltiples procesos en la misma máquina, pero a un nivel muy granuloso grueso (DML bloquea una tabla entera). Por lo tanto, podría tener una docena de procesos httpd de Apache, todos con una base de datos SQLite en el disco local abierta, todo haciendo SELECTsy funcionaría bien. Pero realmente, es la herramienta incorrecta para el trabajo: usaría Postgres en este escenario.
bloquea una tabla completa Solo cuando está escribiendo en ella sin leer, muchos procesadores pueden leer de la misma tabla;)
ucefkh
3
Paradigma Software presenta Valentina Server 6.0 (ahora en prueba beta), que es 3 en 1:
Valentina DB Server
Valentina SQLite Server
Valentina Report Server
SQLite Server utiliza el motor SQLite sin cambios, WAL habilitado. SQLite Server funciona en 3 SO: Mac, Win, Linux .
Puede utilizar la aplicación Valentina Studio (gratuita) para administrar este servidor de base de datos, así como mySQL, postgreSQL, SQLite, MS SQL. También funciona como aplicación nativa hecha en C ++ en 3 SO.
SQLite Server contiene características tales como: SSL, ACL, Copias de seguridad, API REST, Canales de notificación, JSON, XML.
En este momento, el acceso a este servidor se puede hacer desde C ++, Xojo y LiveCode. Pronto se agregarán PHP, Java, .NET.
Puedes usar un servicio similar a Dropbox . Hay soluciones autohospedadas. Sin embargo, SQLite3 no se creó para un modelo cliente-servidor. Sería mejor con otras soluciones que fueron desarrolladas desde cero por el modelo cliente-servidor.
Dropbox y otros servicios de sincronización de archivos NO SON una solución a este problema. Dropbox no contiene ninguna lógica con respecto a la fusión de cambios en una base de datos en la que varios usuarios escriben simultáneamente. El resultado final será la pérdida de datos, trabajo y tiempo.
Respuestas:
SQLite es una base de datos incrustada y no está destinada a ser utilizada como base de datos cliente / servidor. Si realmente quieres, puedes usar SQLitening .
Qué es SQLitening
fuente
Como se indicó anteriormente, sqlite no es una aplicación cliente-servidor y no está diseñada para operaciones altamente concurrentes.
Sin embargo, puede "hacerlo cliente-servidor", si usa ssh.
trabajos.
fuente
No, SQLite no presenta un punto final de red, solo es accesible a través del sistema de archivos. Se hace apoyar el acceso simultáneo de múltiples procesos en la misma máquina, pero a un nivel muy granuloso grueso (DML bloquea una tabla entera). Por lo tanto, podría tener una docena de procesos httpd de Apache, todos con una base de datos SQLite en el disco local abierta, todo haciendo
SELECT
sy funcionaría bien. Pero realmente, es la herramienta incorrecta para el trabajo: usaría Postgres en este escenario.fuente
Paradigma Software presenta Valentina Server 6.0 (ahora en prueba beta), que es 3 en 1:
SQLite Server utiliza el motor SQLite sin cambios, WAL habilitado. SQLite Server funciona en 3 SO: Mac, Win, Linux .
Puede utilizar la aplicación Valentina Studio (gratuita) para administrar este servidor de base de datos, así como mySQL, postgreSQL, SQLite, MS SQL. También funciona como aplicación nativa hecha en C ++ en 3 SO.
SQLite Server contiene características tales como: SSL, ACL, Copias de seguridad, API REST, Canales de notificación, JSON, XML.
En este momento, el acceso a este servidor se puede hacer desde C ++, Xojo y LiveCode. Pronto se agregarán PHP, Java, .NET.
La versión gratuita de Valentina Server incluye
Detalles que puedes leer en el artículo .
fuente
SQLabs ofrece un producto comercial llamado cubeSQL que puede satisfacer sus necesidades.
fuente
Podrías hackear algo usando netcat , pero no puedo imaginar que sea una solución muy elegante.
fuente
Puedes usar un servicio similar a Dropbox . Hay soluciones autohospedadas. Sin embargo, SQLite3 no se creó para un modelo cliente-servidor. Sería mejor con otras soluciones que fueron desarrolladas desde cero por el modelo cliente-servidor.
fuente