Инструкция по подключению БД в многопользовательском режиме

Автор rausNT, 28 апреля 2017, 17:34

0 Пользователи и 1 гость просматривают эту тему.

rausNT

Что то очень много времени убил на подключение БД в многопользовательском режиме.
Решил оформить в виде инструкции и выложить сюда.
(если еще придется этим заниматься, чтобы не забыть, и может кому облегчит жизнь)

0. Написано для 64 битных Windows, Java  и LibreOffice (как будет работать на 32 битных не знаю)

На сервере

1. Обновите Java  и LibreOffice до последней стабильной версии. Это избавит от многих проблем. Серьезно.
2. На комп, который будет использоваться как сервер: Распакуйте зип-файл (приложен к сообщению) в корень папки  C:\db_folder
3. Скачайте hsqldb с https://sourceforge.net/projects/hsqldb/files/
4. Распакуйте зип-файл в корень папки  C:\db_folder, так чтобы путь до hsqldb.jar был C:\db_folder\hsqldb\lib\hsqldb.jar
4.1 Откройте блокнотом файлы server.START.bat и server.STOP.bat и измените путь до java.exe
5. Откройте LibreOffice - Сервис - Параметры - Расширенные возможности. Проверьте что стоит галочка "Использовать виртуальную машину Java"
6. Тут же ниже проверьте что радио-кнопка стоит напротив самой новой 64 битной Java. Ели нет радио кнопки поставить, если вообще ничего не прописано, добавить путь до 64 битной java.
7. Тут же Путь класса - добавить архив, прописать путь C:\db_folder\hsqldb\lib\hsqldb.jar
8. В папке C:\db_folder открыть mydb.file.odb.
9. Создать или перетянуть мышкой из Вашей локальной БД таблицы, запросы, формы, отчеты.Закрыть. Сохранить.
10. В папке появиться несколько файлов, не трогайте их вообще.
11. Нажмите на server.START.bat. Если все ок, появиться окно:

Если что то другое, смотрите где косяк.
12. Тут же подгрузится  mydb.server.odb
13. На mydb.server.odb Правка - База данных - Свойства. Нужно изменить IP на IP текущей машины.
14. Нажмите тест класса. Должно быть ОК.
15. Нажмите тест подключения. Должно быть ОК.
16. Нажмите на таблицы (слева вверху). Должны быть видны ваши таблицы. Формы будут не видны. Это нормально. Перетащите формы из Вашего локального файла БД.
17. Нажмите server.STOP.bat. Будет видна такая картинка:

Окно с запущенным сервером так же измениться:
18. Настройка фаервола: Как вы видите сервер работает на 9001 порту. Этот порт нужно открыть для удаленного подключения.
Для этого нужны права администратора. Если порт не будет открыт, удаленные машины не смогут подключиться к базе!!!
19. Папку C:\db_folder по сети не расшаривайте. Доступ будет через сервер. Однако права на папку у юзера, запустившего сервер hsqldb должны быть "Чтение, Изменение, Запись"

На локальной машине:
1. Копировать файл mydb.server.odb на локальную машину. (можете пользователю на рабочий стол положить)
2. Выполнить пункты 1, 4, 5, 6, 7 с той лишь разницей, что для hsqldb можете использовать любую папку (ну естественно, желательно чтобы не было кириллицы в пути, а может быть и пробелов)
3. Запустите mydb.server.odb
Если на сервере выполнен пункт 11 и не выполнен 17, то вы увидите свою сетевую базу.
Т.е. если сервер стартовал, если порт 9001 на сервере открыт, все ок.
Иначе ищите проблему. Для начала прозвоните с помощью программы telnet порт на удаленной машине.
В сети есть много информации по этому поводу.
Наверное все.

P.S. модеры - если тема оформлена неверно - прошу подправить.


Dmitry_K

Всем привет! У меня при открытии клиентского файла не видны таблицы из серверной части. Не знаю как это победить...
Если сначала открыть сервер, а потом локальный файл, таблицы появляются. Если открывается только локал, таблиц нет...

Yakov

Прописать скрипт запуска сервера server.START.bat в автозагрузку?