Оформление
Настройка внешней базы данных MySQL8 - Справка FineReport | Разработка отчетов | Отчеты | Учебные пособия
Настройка внешней базы данных MySQL8
1. Обзор
1.1 Версия
| Версия сервера FineBI | Функциональные изменения |
|---|---|
| 6.0 | - |
1.2 Функциональный профиль
После настройки BI-системы на внешнюю базу данных можно обеспечить стабильность BI-системы при работе с кластерной средой или большим объемом данных.
Пользователи могут настроить внешнюю базу данных в разделе "Инициализация" или настроить версию MySQL8 для внешней базы данных в разделе "Платформа".
Примечание: Если вы настроили внешнюю базу данных, пожалуйста, не меняйте легко имя пользователя и пароль внешней базы данных, иначе это приведет к сбою запуска проекта.
Если вам необходимо внести изменения, обратитесь к разделу: Изменение пароля учетной записи внешней базы данных.
2. конфигурация базы данных
2.1 Версия базы данных
Типы и версии, поддерживаемые внешней базой данных, приведены в следующей таблице:
| Тип базы данных | Поддерживаемые версии баз данных |
|---|---|
| MySQL8 | 8.0.11, 8.0.16, 8.0.20 |
2.2 Конфигурация оборудования
| Тип конфигурации | минимальная конфигурация | Рекомендуемые конфигурации |
|---|---|---|
| память с произвольным доступом (RAM) | 1 ГБ | 2 ГБ |
| CPU | 4-ядерный | 8-ядерный |
| скорость сети | 50 Мбит/с | 100 Мбит/с |
| место, занимаемое finedb | 1 ГБ | 2 ГБ |
| Дисковое пространство сервера | 100 ГБ | 200 ГБ |
| Скорость чтения/записи дисков | 50 МБ/с | 100 МБ/с |
Примечание 1: Занимаемое пространство должно регулироваться в зависимости от степени использования, может быть настроено в соответствии с размером папки webapps/webroot/WEB-INF/embed/finedb, а в соответствии с фактическим размером будущего использования размер прогноза, увеличенный в 1 - 2 раза.
Примечание 2: Рекомендуемая память - это память, зарезервированная для библиотеки конфигурации проекта.
Примечание 3: Внешняя база данных должна находиться в том же сегменте сети, что и BI-проект, насколько это возможно, чтобы избежать сетевых колебаний и других проблем.
2.3 Новая база данных
Примечание: Разные проекты FineBI не могут использовать одну и ту же внешнюю базу данных, иначе данные могут быть испорчены.
Создайте новую базу данных для хранения данных, связанных с платформой.
Стандартный оператор библиотеки: CREATE DATABASE `finedb` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
Рекомендуется установить набор символов базы данных по умолчанию на utf8, а правило сортировки по умолчанию на utf8_bin. как показано на следующем рисунке:
Примечание 1: Рекомендуется установить правило сортировки наборов символов базы данных на utf8_bin (чувствительный к регистру), чтобы предотвратить исключения привилегий, не учитывающих регистр, см. раздел 4.2.
Примечание 2: Для MySQL 8.0.28 и более поздних версий рекомендуется установить набор символов базы данных по умолчанию на utf8mb3, а правило сортировки по умолчанию на utf8mb3_bin.

Имя базы данных:
Допускаются только цифры, буквы, знаки подчеркивания и ".".
Набор символов:
1) Когда платформа подключена к базе данных MySQL, необходимо установить правила сортировки по набору символов (с учетом регистра).
2) utf8 Рекомендуется использовать кодировку UTF-8 Unicode.
3) Не поддерживается кодировка utf8mb4
Правила сортировки:
В MySQL существует несколько форматов правил сортировки в кодировке utf8, два наиболее распространенных из которых приведены в следующей таблице:
1) utf8_bin (рекомендуется)
Определение: хранить каждый символ в строке как двоичные данные, с учетом регистра.
Пример: Alex и alex считаются двумя разными значениями.
1) utf8_general_ci
Определение: ci означает case insensitive, то есть нечувствительный к регистру, и является кодировкой по умолчанию для utf8.
Пример: Alex и alex считаются одним и тем же значением.
3. Конфигурация внешних баз данных
3.1 Внешний портал конфигурации базы данных
Существует три формы конфигурационных записей для внешних баз данных:
1) Когда администратор впервые входит в систему Data Decision System, он может настроить внешнюю базу данных для системы. Это показано на рисунке ниже:

(2) Для систем, использующих встроенную базу данных, администратор может впервые настроить внешнюю базу данных для системы, войдя в Data Decision System и нажав "Management System > System Management > General > External Database > To be Configured". Как показано на рисунке ниже:

(3) Для систем с включенной внешней базой данных администраторы могут перевести систему на новую внешнюю базу данных, войдя в Data Decision System и нажав "Management System > System Management > General > External Database > Configured". Как показано на рисунке ниже:

3.2 Настройка внешней базы данных
После входа в интерфейс конфигурации внешней базы данных выберите тип базы данных и введите соответствующую информацию о реальной базе данных. Как показано на рисунке ниже:

3.2.1 Настройки
Описание каждого элемента настройки приведено в таблице ниже:
| элемент настройки | уточнение |
|---|---|
| Тип базы данных | Выберите MySQL |
| привод (колесо транспортного средства) | Вручную переключитесь на com.mysql.cj.jdbc.Driver |
| Имя базы данных | Раздел 2.3 Имя вновь созданной базы данныхСовместное использование базы данных с другими проектами запрещено, рекомендуется создание новой базы данныхИмена баз данных могут содержать только цифры, буквы, символы подчеркивания и ".". |
| Имя пользователя/хост/пароль/порт | Заполните в соответствии с реальной ситуацией с локальной базой данныхИмя хоста может содержать только цифры, буквы, знаки подчеркивания, "-" и ".".Пользователи должны иметь права на создание, удаление, изменение, обновление, выбор, вставку , индексирование. |
| URL-адрес подключения к базе данных | Измените его вручную в следующем формате, где IP:номер порта/имя базы данных необходимо настроить самостоятельно:jdbc:mysql://IP:номер порта/имя базы данных?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai& zeroDateTimeBehavior=CONVERT_TO_NULL |
3.2.2 Перенос данных в базу данных, которую необходимо включить
Пользователи могут выбрать, отмечать или нет кнопку "Перенести данные в базы данных с поддержкой", в зависимости от своих потребностей. Подробности приведены ниже:
1) Установите флажок "Перенести данные в базу данных, которая будет включена", новая внешняя база данных пуста.
При нажатии на кнопку "Включить новую базу данных" данные платформы будут перенесены из исходной базы данных finedb в новую внешнюю базу данных.
2) Отметьте "Перенести данные в базу данных, которая будет включена", данные платформы уже существуют в новой внешней базе данных.
После нажатия кнопки "Включить новую базу данных" появится запрос: "Данные платформы уже существуют в этой базе данных, исходные данные платформы будут очищены перед импортом данных, подтвердите подключение к этой базе данных?". Подтвердить подключение к базе данных?
Нажав "OK", вы очистите исходные данные платформы и перенесете данные платформы из исходной базы данных finedb в новую внешнюю базу данных.

(3) Если флажок "Мигрировать данные в базу данных, которую нужно включить" не установлен , новая внешняя база данных будет пустой.
После нажатия кнопки "Включить новую базу данных" появится сообщение "Целевая база данных является новой базой данных, перенесите текущие данные в целевую базу данных, прежде чем вы сможете ее использовать".
Нажмите OK, чтобы перенести данные платформы из исходной базы данных finedb в новую внешнюю базу данных.

(4) Если флажок "Перенести данные в базу данных для включения" не установлен, данные платформы уже существуют в новой внешней базе данных.
После нажатия кнопки "Включить новую базу данных" BI-проект автоматически определит, совпадают ли версия JAR-пакета, соответствующего данным в целевой базе данных, и версия JAR-пакета текущего проекта.
- Если он не соответствует, появится сообщение: "Невозможно включить! Версия проекта, необходимая для включения новой базы данных: XXX. Текущая версия проекта: XXX. Пожалуйста, убедитесь, что версия проекта одинакова! Пожалуйста, убедитесь, что версия проекта одинаковая! Конфигурация внешней базы данных не может быть выполнена.

- Если версия пакета JAR одинакова и исходная база данных finedb является встроенной базой данных, новая внешняя база данных включается напрямую.
- Если версия пакета JAR одинакова, а исходная база данных finedb является внешней базой данных, то информация о конфигурации исходной базы данных будет автоматически сохранена перед миграцией, а файл db.properties.bak будет создан в каталоге webapps\webroot\WEB-INF\config, и новая внешняя база данных будет включена напрямую. Как показано на рисунке ниже:

3.3 Успешная миграция
Подождите некоторое время, после успешной миграции могут появиться различные всплывающие подсказки в зависимости от ситуации на момент миграции.
1) Новая внешняя база данных, использующая данные из исходной базы данных finedb.
Появится запрос "Целевая база данных успешно включена". Нажмите "OK", и миграция пройдет успешно. Как показано на рисунке ниже:

2) Новая внешняя база данных, которая использует исходные данные в этой базе, а исходная база данных finedb является встроенной базой данных.
Появится сообщение: "База данных успешно переключена на целевую базу данных! Если между старой и новой базами данных имеются различия в данных, которые могут повлиять на работу системы, рекомендуется перезапустить проект для обеспечения нормальной работы".
После нажатия кнопки "OK" перезапустите проект отчета, миграция партий пройдет успешно. Как показано на рисунке ниже:

3) Новая внешняя база данных, которая использует исходные данные в этой базе, а исходная база данных finedb является внешней.
Затем появляются две подсказки:
- База данных успешно переключена на целевую базу данных! Если между старой и новой базами данных имеются различия в данных, которые могут повлиять на работу системы, рекомендуется перезапустить проект для обеспечения нормальной работы!
- Оригинальная конфигурация базы данных была сохранена в папке config, и при необходимости вы можете использовать файл резервной копии для восстановления конфигурации базы данных.
После нажатия кнопки "OK" перезапустите проект отчета, миграция партий пройдет успешно. Как показано на рисунке ниже:


3.4 Удаление соединений данных встроенной библиотеки
Встроенная база данных FineDB" - это база данных HSQL, которая создает базу данных в памяти и занимает много памяти при большом объеме данных.
Поэтому после настройки внешней базы данных проверьте, есть ли в подключении данных "Встроенная база данных FineDB".
Если при подключении к серверу остались соответствующие данные, пожалуйста, вовремя удалите их, иначе они будут продолжать занимать память сервера.

4. условия
4.1 Модификация правил сортировки
Если правила сортировки базы данных изначально не были установлены на utf8_bin, но были перенесены, то две таблицы fine_conf_entity, fine_conf_classname необходимо изменить на utf8_bin, в качестве примера ниже приводится fine_conf_entity. сущность в качестве примера:
1) Запрос текущих правил сортировки набора символов
показать полные колонки из fine_conf_entity2) Установите правило сортировки набора символов на utf8_bin
- Установка правил контрольной суммы по умолчанию для столбцов
ALTER TABLE fine_conf_entity MODIFY id VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin.- Настройка правил контрольной суммы таблицы
ALTER TABLE fine_conf_entity DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;3) Проверьте успешность модификации
показать полные колонки из fine_conf_entity4) Замените fine_conf_classname, fine_authorityна utf8_bin, выполнив те же действия, что и 1) 2) 3) выше , с настройками, показанными ниже:

4.2 Ненормальные привилегии подключения данных
Описание проблемы:
После того как система FineBI настроена на работу с внешней базой данных, ее члены получают административные права для набора данных SQL и соответствующего соединения с данными (имя в нижнем регистре, например, test).
Однако, когда участник входит в систему для просмотра набора данных SQL, кнопка "Изменить набор данных SQL" не появляется, т. е. настройка административных привилегий для подключения к данным не действует, как показано на следующем рисунке:

Анализ причин:
Конфигурация административных привилегий для соединения с данными хранится в таблице fine_authority, которая имеет правило сортировки без учета регистра в кодировкеutf8, которое записывает имя соединения с данными test как TEST.
В результате, когда система FineBI запрашивает запись конфигурации разрешения соединения данных (тест) на основе таблицы fine_authority, запрос не выполняется, что приводит к сбою конфигурации этого соединения данных.
Решение:
Обратитесь к разделу 4.1 этого документа, чтобы установить правила упорядочивания набора символов для fine_conf_entity, fine_conf_classname и fine_authority в utf8_bin, чтобы сделать их чувствительными к регистру, после чего конфигурация привилегий управления соединением данных сможет нормально действовать.