# Настройка базы данных приложения GlarusBI База данных приложения — это место, где GlarusBI хранит информацию о пользователях, сохраненных вопросах, дашбордах и любых других данных, необходимых для работы приложения. По умолчанию используется встроенная база данных H2, но это можно изменить и выбрать другую базу данных. ## Примечания - Использование GlarusBI с базой данных H2 не рекомендуется для производственных развертываний. Для промышленной эксплуатации мы настоятельно рекомендуем вместо этого использовать Postgres, MySQL или MariaDB. Если же вы решите продолжать использовать H2, обязательно регулярно делайте резервную копию файла базы данных. - Вы не можете изменить базу данных приложения, если приложение запущено. Информация о конфигурации подключения считывается только один раз при запуске приложения и остается постоянным в течение всего времени работы. - GlarusBI предоставляет ограниченную поддержку для миграции с H2 на Postgres или MySQL, если вы решите перейти на другую базу данных. Дополнительные сведения см. в разделе [Миграция с H2 на MySQL или Postgres](migrating-from-h2.md). ## [H2](https://www.h2database.com/) (по умолчанию) **Для производственной установки GlarusBI мы рекомендуем пользователям [заменить базу данных H2 на более надежную](./migrating-from-h2.md), например на Postgres.** Это обеспечит более высокий уровень надежности и производительности, особенно при работе большого количества пользователей. Если же вы решите использовать базу данных H2, вам вообще ничего не нужно будет менять. Когда приложение запускается первый раз, оно попытается создать новую базу данных H2 в той же папке файловой системы, из которой вы его запустили. Вы можете просмотреть файлы базы данных, выполнив в терминале следующую команду: ls metabase.* Вы увидите следующее: metabase.db.h2.db # Or metabase.db.mv.db depending on when you first started using GlarusBI. metabase.db.trace.db Если по какой-либо причине вы хотите поместить файл базы данных H2 в другой каталог, вы можете сделать это с помощью переменной среды. Например: export MB_DB_TYPE=h2 export MB_DB_FILE=/the/path/to/my/h2.db java -jar glarusBI.jar Обратите внимание, что H2 автоматически добавит `.mv.db` или `.h2.db` к указанному вами пути; поэтому не добавляйте эти расширения вручную! Другими словами, `MB_DB_FILE` должен выглядеть как `/path/to/metabase.db`, а не как `/path/to/metabase.db.mv.db`. ## [Postgres](https://www.postgresql.org/) Вы можете изменить базу данных приложения на Postgres, используя следующие переменные. Например: export MB_DB_TYPE=postgres export MB_DB_DBNAME=metabase export MB_DB_PORT=5432 export MB_DB_USER= export MB_DB_PASS= export MB_DB_HOST=localhost java -jar glarusBI.jar Обратите внимание, что вначале вам необходимо создать эту базу данных. Пример команды: createdb --encoding=UTF8 -e metabase При этих настройках GlarusBI будет использовать Postgress в качестве базы данных своего приложения, используя указанную выше информацию о коннекте. GlarusBI также поддерживает коннект с помощью JDBC строки, например: export MB_DB_CONNECTION_URI="jdbc:postgresql://localhost:5432/metabase?user=&password=" java -jar glarusBI.jar `MB_DB_CONNECTION_URI` также можно использовать в сочетании с `MB_DB_USER` и/или `MB_DB_PASS`, если вы хотите передать один или оба этих параметра отдельно от остальной части строки подключения JDBC (полезно, если пароль содержит специальные символы): export MB_DB_CONNECTION_URI="jdbc:postgresql://localhost:5432/metabase" export MB_DB_USER= export MB_DB_PASS= java -jar glarusBI.jar ## Обновление с версии ранее 0.38 Если вы выполняете обновление с предыдущей версии GlarusBI, обратите внимание, что для GlarusBI 0.38 мы удалили использование PostgreSQL NonValidatingFactory для проверки SSL. Возможно, у вас может возникнуть сбой либо при запуске (если вы используете базу данных приложения PostgreSQL), либо при запросе к хранилищу данных PostgreSQL. Вы можете устранить эту ошибку одним из двух способов: 1. Настроить соединение PostgreSQL для использования проверки SSL-сертификата, 2. Или вручную включить `NonValidatingFactory`. ВНИМАНИЕ: этот метод небезопасен. Мы упоминаем о нем, чтобы вы могли использовать его для поиска ошибок, или же в ситуациях, когда вам не нужно заботиться о безопасности вашего приложения. То, как вы настраиваете подключение, зависит от того, используете ли вы Postgres в качестве хранения метаданных или в качестве хранилища данных, подключенного к GlarusBI: **Для базы данных приложения Postgres**: Чтобы использовать проверку SSL-сертификата, вам необходимо задать переменную MB_DB_CONNECTION_URI следующим образом: ``` export MB_DB_CONNECTION_URI="postgres://localhost:5432/metabase?user=&password=&sslmode=verify-ca&sslrootcert=" ``` Если вы не можете включить проверку сертификата, вы можете включить `NonValidatingFactory` для базы данных вашего приложения с помощью той же переменной среды, что и выше: ``` export MB_DB_CONNECTION_URI="postgres://localhost:5432/metabase?user=&password=&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory" ``` **Для баз данных хранилища данных Postgres** Вы можете сделать то же самое на странице администратора для подключения к базе источников данных Postgres. Добавьте следующее в конец строки подключения JDBC: ``` &sslmode=verify-ca&sslrootcert= ``` Если это не сработает, вы можете включить `NonValidatingFactory`, добавив следующую конфигурацию в конец вашего URI подключения: ``` &ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory ``` Для информации о том как еще дополнительно можно настраивать параметры SSL подключения см. [документацию PostgreSQL SSL](https://jdbc.postgresql.org/documentation/ssl/#configuring-the-client). ## [MySQL](https://www.mysql.com/) или [MariaDB](https://www.mariadb.org/) Если вы предпочитаете использовать MySQL или MariaDB, то минимальная рекомендуемая версия — MySQL 5.7.7 или MariaDB 10.2.2, с кодировкой utf8mb4. Для этого вам нужно задать переменные среды следующим образом: export MB_DB_TYPE=mysql export MB_DB_DBNAME=metabase export MB_DB_PORT=3306 export MB_DB_USER= export MB_DB_PASS= export MB_DB_HOST=localhost java -jar glarusBI.jar Обратите внимание, что вначале вам необходимо создать эту базу данных. Пример команды: CREATE DATABASE metabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; При этих настройках GlarusBI будет использовать Mysql в качестве базы данных своего приложения, используя указанную выше информацию о коннекте. GlarusBI также поддерживает коннект с помощью JDBC строки, например: export MB_DB_CONNECTION_URI="jdbc:mysql://localhost:3306/metabase?user=&password=" java -jar glarusBI.jar Как и в случае с Postgres, `MB_DB_CONNECTION_URI` также можно использовать в сочетании с `MB_DB_USER` и/или `MB_DB_PASS`, если вы хотите передать один или оба этих параметра независимо от остальной части строки подключения JDBC: export MB_DB_CONNECTION_URI="jdbc:mysql://localhost:5432/metabase" export MB_DB_USER= export MB_DB_PASS= java -jar glarusBI.jar