Bisakah Anda memberi alasan mengapa hal ini bermanfaat? Kalau tidak, saya pikir itu layak ditutup bukan pertanyaan nyata. SQLite bukan database klien-server dan benar-benar dipasarkan ke kerumunan yang tidak memerlukan database klien-server.
jcolebrand
1
@Elke meskipun ini tidak lagi benar dalam mode WAL dari versi 3.7 - hanya ada satu menulis pada satu waktu, tetapi "pembaca tidak memblokir penulis dan penulis tidak memblokir pembaca"
Mengapa? Saya pikir Anda harus mendefinisikan persyaratan Anda ... dan mungkin Anda akan menemukan basis data yang lebih cocok ...
AK_
3
@AK_ Persyaratan utama adalah ACID penuh dan basis data yang sangat sederhana untuk dikembangkan dan digunakan. Kami membangun versi khusus untuk berfungsi sebagai server-klien dan hasilnya sungguh menakjubkan! Orang-orang meremehkan kapasitas SQLite dan kebutuhan berlebihan akan konkurensi untuk perusahaan kecil. Orang-orang perlu membuka pikiran. Ikuti resepnya bukan satu-satunya cara untuk pergi. Sekarang kami memiliki produk tanpa persaingan di pasar kami.
Maniero
Jawaban:
25
SQLite adalah database tertanam dan tidak dimaksudkan untuk digunakan sebagai DB klien / server. Jika Anda benar-benar ingin, Anda dapat menggunakan SQLitening .
Apa itu SQLitening
SQLitening adalah implementasi klien / server dari database SQLite yang sangat populer.
SQLitening adalah perpustakaan programmer dalam bentuk Win32 DLL standar. Itu diinstal sebagai Layanan Windows standar. Selain mode klien / server, perpustakaan memungkinkan pemrogram juga mengakses basis data SQLite dalam mode lokal. Dalam kedua mode (lokal atau klien / server), basis data sangat cepat dan kuat. - Sumber: http://www.planetsquires.com/sqlite_client_server.htm
Apakah ini dianggap "client-server" karena Anda telah mengenkripsi koneksi?
Robert Harvey
Tidak, itu hanya karena jaringan antara mesin yang meng-host db dan mesin yang mengakses db.
ddeimeke
4
Tidak, SQLite tidak menampilkan titik akhir jaringan - hanya dapat diakses melalui sistem file. Ini tidak mendukung akses bersamaan dari beberapa proses pada mesin yang sama tetapi pada tingkat yang sangat kasar-grained (DML mengunci seluruh tabel). Jadi Anda bisa memiliki selusin proses Apache httpd semua dengan database SQLite pada disk lokal terbuka, semua melakukan SELECTdan itu akan bekerja dengan baik. Tapi sungguh, ini alat yang salah untuk pekerjaan itu - saya akan menggunakan Postgres dalam skenario ini.
mengunci seluruh tabel Hanya ketika Anda sedang menulis di atasnya tidak membaca banyak
prosesor
3
Perangkat Lunak Paradigma memperkenalkan Valentina Server 6.0 (dalam pengujian beta sekarang), yaitu 3 in 1:
Valentina DB Server
Valentina SQLite Server
Server Laporan Valentina
SQLite Server menggunakan mesin SQLite tanpa perubahan, WAL diaktifkan. SQLite Server berfungsi pada 3 OS: Mac, Win, Linux .
Anda dapat menggunakan aplikasi Valentina Studio (gratis) untuk mengelola Server DB ini, serta mySQL, postgreSQL, SQLite, MS SQL. Ini juga berfungsi sebagai aplikasi asli C ++ yang dibuat pada 3 OS.
SQLite Server berisi fitur-fitur seperti: SSL, ACL, Backup, REST API, Notification Channels, JSON, XML.
Saat ini akses ke server ini dapat dilakukan dari C ++, Xojo dan LiveCode. Segera akan ditambahkan PHP, Java, .NET.
Anda dapat menggunakan layanan yang mirip dengan dropbox . Ada solusi yang di-host sendiri. Namun, SQLite3 tidak dibuat untuk model client-server. Anda akan lebih baik dengan solusi lain yang dikembangkan oleh model client-server.
Dropbox dan layanan sinkronisasi file lainnya BUKAN solusi untuk masalah ini. Dropbox tidak mengandung logika apa pun sehubungan dengan menggabungkan perubahan dalam basis data yang ditulis beberapa pengguna secara bersamaan. Hasil akhirnya akan kehilangan data, pekerjaan, dan waktu.
Jawaban:
SQLite adalah database tertanam dan tidak dimaksudkan untuk digunakan sebagai DB klien / server. Jika Anda benar-benar ingin, Anda dapat menggunakan SQLitening .
Apa itu SQLitening
sumber
Seperti yang dinyatakan sebelumnya sqlite bukan aplikasi client-server dan tidak dibangun untuk operasi yang sangat bersamaan.
Namun demikian Anda dapat "membuatnya client-server", jika Anda menggunakan ssh.
bekerja.
sumber
Tidak, SQLite tidak menampilkan titik akhir jaringan - hanya dapat diakses melalui sistem file. Ini tidak mendukung akses bersamaan dari beberapa proses pada mesin yang sama tetapi pada tingkat yang sangat kasar-grained (DML mengunci seluruh tabel). Jadi Anda bisa memiliki selusin proses Apache httpd semua dengan database SQLite pada disk lokal terbuka, semua melakukan
SELECT
dan itu akan bekerja dengan baik. Tapi sungguh, ini alat yang salah untuk pekerjaan itu - saya akan menggunakan Postgres dalam skenario ini.sumber
Perangkat Lunak Paradigma memperkenalkan Valentina Server 6.0 (dalam pengujian beta sekarang), yaitu 3 in 1:
SQLite Server menggunakan mesin SQLite tanpa perubahan, WAL diaktifkan. SQLite Server berfungsi pada 3 OS: Mac, Win, Linux .
Anda dapat menggunakan aplikasi Valentina Studio (gratis) untuk mengelola Server DB ini, serta mySQL, postgreSQL, SQLite, MS SQL. Ini juga berfungsi sebagai aplikasi asli C ++ yang dibuat pada 3 OS.
SQLite Server berisi fitur-fitur seperti: SSL, ACL, Backup, REST API, Notification Channels, JSON, XML.
Saat ini akses ke server ini dapat dilakukan dari C ++, Xojo dan LiveCode. Segera akan ditambahkan PHP, Java, .NET.
Versi gratis dari Valentina Server termasuk
Detailnya bisa Anda baca di artikel .
sumber
SQLab menawarkan produk komersial yang disebut cubeSQL yang mungkin sesuai dengan kebutuhan Anda.
sumber
Anda bisa meretas sesuatu bersama menggunakan netcat , tapi saya tidak bisa membayangkan itu akan menjadi solusi yang sangat elegan.
sumber
Anda dapat menggunakan layanan yang mirip dengan dropbox . Ada solusi yang di-host sendiri. Namun, SQLite3 tidak dibuat untuk model client-server. Anda akan lebih baik dengan solusi lain yang dikembangkan oleh model client-server.
sumber