Можете ли вы объяснить, почему это было бы полезно? В противном случае я думаю, что это заслуживает закрытия как не настоящий вопрос. SQLite не является клиент-серверной базой данных и действительно продается тем, кому не нужна клиент-серверная база данных.
Jcolebrand
1
@Eelke, хотя это не так в режиме WAL начиная с версии 3.7 - может быть только одна запись за раз, но «читатели не блокируют писателей, а писатель не блокирует читателей»
Зачем? Я думаю, что вы должны определить свои требования ... и, возможно, вы найдете более подходящую базу данных ...
AK_
3
@AK_ Основными требованиями являются полная ACID и очень простая база данных для разработки и использования. Мы создали пользовательскую версию для работы в качестве клиента-сервера, и результат просто потрясающий! Люди недооценивают возможности SQLite и переоценивают потребность в параллелизме для небольших компаний. Людям нужно открыть разум. Следовать рецепту не единственный путь. Теперь у нас есть продукт без конкуренции на нашем рынке.
Маньеро
Ответы:
25
SQLite - это встроенная база данных, и она не предназначена для использования в качестве клиент-серверной БД. Если вы действительно хотите, вы можете использовать SQLitening .
Что такое SQLitening
SQLitening - это клиент-серверная реализация очень популярной базы данных SQLite.
SQLitening - это библиотека программиста в стандартной форме Win32 DLL. Он устанавливается как стандартная служба Windows. В дополнение к режиму клиент / сервер, библиотека позволяет программисту также получать доступ к базам данных SQLite в локальном режиме. В любом режиме (локальный или клиент / сервер) база данных очень быстрая и надежная. - Источник: http://www.planetsquires.com/sqlite_client_server.htm
Это считается "клиент-сервер", потому что вы зашифровали соединение?
Роберт Харви
Нет, это просто из-за сети между машиной, на которой находится БД, и машиной, которая обращается к БД.
ddeimeke
4
Нет, SQLite не представляет конечную точку сети - он доступен только через файловую систему. Он делает одновременно поддерживает доступ нескольких процессов на той же машине , но при очень крупнозернистый уровне (DML блокирует всю таблицу). Таким образом, вы можете иметь дюжину процессов Apache httpd, все с открытой базой данных SQLite на локальном диске, все делают SELECTs, и все будет работать отлично. Но на самом деле, это неправильный инструмент для работы - я бы использовал Postgres в этом сценарии.
блокирует всю таблицу, только когда вы пишете на ней, не читая, многие процессоры могут читать из одной таблицы;)
ucefkh
3
Paradigma Software представляет Valentina Server 6.0 (в настоящее время в бета-тестировании), то есть 3 в 1:
Валентина БД Сервер
Валентина SQLite Сервер
Валентина Отчет Сервер
SQLite Server использует движок SQLite без изменений, WAL включен. SQLite Server работает на 3 ОС: Mac, Win, Linux .
Вы можете использовать приложение Valentina Studio (бесплатно) для управления этим сервером БД, а также mySQL, postgreSQL, SQLite, MS SQL. Он также работает как родное C ++ приложение на 3 ОС.
SQLite Server содержит такие функции, как: SSL, ACL, резервное копирование, REST API, каналы уведомлений, JSON, XML.
Прямо сейчас доступ к этому серверу может быть сделан из C ++, Xojo и LiveCode. В ближайшее время будут добавлены PHP, Java, .NET.
Бесплатная версия Valentina Server включает в себя
Вы можете использовать сервис, похожий на Dropbox . Есть собственные решения. Однако SQLite3 не был создан для модели клиент-сервер. Вы бы лучше с другими решениями, которые были разработаны на основе модели клиент-сервер.
Dropbox и другие сервисы синхронизации файлов НЕ являются решением этой проблемы. Dropbox не содержит никакой логики в отношении слияния изменений в базе данных, которые одновременно записывают несколько пользователей. Конечным результатом будут потеряны данные, работа и время.
Ответы:
SQLite - это встроенная база данных, и она не предназначена для использования в качестве клиент-серверной БД. Если вы действительно хотите, вы можете использовать SQLitening .
Что такое SQLitening
источник
Как указывалось ранее, sqlite не является клиент-серверным приложением и не предназначен для одновременных операций.
Тем не менее, вы можете «сделать это клиент-сервер», если вы используете ssh.
работает.
источник
Нет, SQLite не представляет конечную точку сети - он доступен только через файловую систему. Он делает одновременно поддерживает доступ нескольких процессов на той же машине , но при очень крупнозернистый уровне (DML блокирует всю таблицу). Таким образом, вы можете иметь дюжину процессов Apache httpd, все с открытой базой данных SQLite на локальном диске, все делают
SELECT
s, и все будет работать отлично. Но на самом деле, это неправильный инструмент для работы - я бы использовал Postgres в этом сценарии.источник
Paradigma Software представляет Valentina Server 6.0 (в настоящее время в бета-тестировании), то есть 3 в 1:
SQLite Server использует движок SQLite без изменений, WAL включен. SQLite Server работает на 3 ОС: Mac, Win, Linux .
Вы можете использовать приложение Valentina Studio (бесплатно) для управления этим сервером БД, а также mySQL, postgreSQL, SQLite, MS SQL. Он также работает как родное C ++ приложение на 3 ОС.
SQLite Server содержит такие функции, как: SSL, ACL, резервное копирование, REST API, каналы уведомлений, JSON, XML.
Прямо сейчас доступ к этому серверу может быть сделан из C ++, Xojo и LiveCode. В ближайшее время будут добавлены PHP, Java, .NET.
Бесплатная версия Valentina Server включает в себя
Подробности вы можете прочитать в статье .
источник
SQLabs предлагает коммерческий продукт под названием cubeSQL, который может удовлетворить ваши потребности.
источник
Вы можете взломать что-нибудь вместе, используя netcat , но я не могу представить, что это будет очень элегантное решение.
источник
Вы можете использовать сервис, похожий на Dropbox . Есть собственные решения. Однако SQLite3 не был создан для модели клиент-сервер. Вы бы лучше с другими решениями, которые были разработаны на основе модели клиент-сервер.
источник