Введение
Данное промежуточное ПО было оптимизировано и модифицировано на основе исходного кода mycat. Оно поддерживает прозрачное шифрование на уровне столбцов в базе данных и совместимо с MySQL 8.
ПО поддерживает оригинальный протокол MySQL и позволяет подключаться к другим типам баз данных через конфигурационный файл с использованием драйвера jdbc, хотя это не рекомендуется. Mycat считается лучшим партнёром для MySQL, и использование других баз данных может привести к нестабильности.
Использование данного ПО аналогично использованию mycat, но с добавлением конфигурационного файла encrypt.xml для настройки шифрования и нескольких свойств шифрования в server.xml.
Здесь мы подробно рассмотрим использование и конфигурацию шифрования, а также рекомендуем обратиться к документации mycat для получения информации о других аспектах конфигурации. Также не следует использовать разделение на библиотеки и таблицы без крайней необходимости, так как mycat представляет собой псевдораспределённую базу данных, и последующее расширение или изменение правил узлов может быть сложным. Большинство компаний используют только функцию разделения чтения и записи.
Обратите внимание на публичный аккаунт «Спиральный программист-экстремал», где вы можете присоединиться к группе для обсуждения и совместного обучения, а также получить доступ к обширным ресурсам для изучения.
Установка
Скачайте релизную сжатую папку и распакуйте её.
Запуск
./mycat start — запуск
./mycat stop — остановка
./mycat console — передний план
./mycat restart — перезапуск службы
./mycat pause — пауза
./mycat status — просмотр состояния запуска
Запустите startup_nowrap.bat напрямую. Если возникает сбой, запустите его из командной строки cmd для просмотра причины ошибки.
Конфигурация памяти Откройте conf/wrapper.conf, чтобы настроить параметры jvm.
Тестирование соединения Тестирование mycat аналогично тестированию MySQL. Соединение с mycat осуществляется так же, как и с MySQL.
По умолчанию порт сервера mycat равен 8066: mysql -u имя пользователя -P 8066 -p пароль. Используйте этот порт для подключения с помощью программы или Navicat.
Порт управления mycat по умолчанию равен 9066: mysql -u имя пользователя -P 9066 -p пароль. Он используется вместе с [mycat-encrypt-web] для мониторинга и управления. Обычные команды включают show @@sql, show @@sql.slow, show @@sql.high и т. д.
Mycat полностью поддерживает MySQL 5.7, который всё ещё является основной версией MySQL на рынке. Включая распределённую базу данных TiDB, которая адаптирована для MySQL 5.7.
Если вы хотите использовать MySQL 8.0, необходимо установить плагин аутентификации пользователя на mysql_native_password.
Для уже существующих пользователей выполните команду:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Измените файл конфигурации my.cnf, и последующие пользователи будут использовать mysql_native_password по умолчанию.
[mysqld]
default_authentication_plugin=mysql_native_password
Описание конфигурации --bin — каталог запуска
--conf — каталог конфигурации, содержащий файлы конфигурации:
--server.xml: файл конфигурации параметров сервера Mycat и авторизации пользователей.
--schema.xml: файл конфигурации определения логических библиотек, таблиц и фрагментов.
--encrypt.xml — файл конфигурации шифрования определённых библиотек, таблиц и полей (новый модуль).
--rule.xml: файл конфигурации правил фрагментации, некоторые конкретные параметры правил хранятся в этом файле, также находящемся в этом каталоге. Изменение этого файла требует перезапуска MyCAT.
--log4j.xml: журналы хранятся в папке logs/log, каждый день создаётся новый файл. Конфигурация журнала находится в conf/log4j.xml, уровень вывода можно настроить на debug. На уровне debug выводится больше информации, что удобно для устранения неполадок.
--autopartition-long.txt,partition-hash-int.txt,sequence_conf.properties, sequence_db_conf.properties — файлы конфигурации связанных с фрагментацией правил id.
--lib — папка, содержащая jar-файлы MyCAT и зависимые jar-файлы.
--logs — папка журналов MyCAT. Журналы хранятся в папке logs/log, каждый день создаётся новый файл.
Логическая конфигурация библиотеки
Schema — это конфигурация фактической логической библиотеки, можно настроить несколько.
DataNode — это фрагмент, соответствующий логической библиотеке.
DataHost — это фактический адрес конфигурации физической библиотеки, можно настроить главный, подчиненный, ведущий-ведомый и другие конфигурации. Несколько dataHost представляют адреса физических библиотек, соответствующих фрагментам. Ниже приведены writeHost, readHost, представляющие, настроена ли эта фрагментация для мультизаписи, главного-подчиненного, чтения-записи и других высокоуровневых функций.
Атрибут баланса
Тип балансировки нагрузки, в настоящее время доступны 3 вида:
Атрибут writeType
Тип балансировки нагрузки, в настоящее время доступно 3 вида:
Атрибут switchType
-1 означает отсутствие автоматического переключения
1 — значение по умолчанию, автоматическое переключение
2 — основано на состоянии синхронизации главного и подчинённого MySQL для определения необходимости переключения
Оператор сердцебиения — показать статус ведомого
3 — на основе механизма переключения кластера MySQL galary (подходит для кластера)
Оператор сердцебиения — показать состояние вроде ‘wsrep%’
<schema name="test" checkSQLschema="true" sqlMaxLimit="100" dataNode="test">
</schema>
<dataNode name="test" dataHost="test" database="test" />
<dataHost name="test" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="localhost:3307" user="root"
password="root">
</writeHost>
</dataHost>
Добавьте логическую библиотеку mycat: test (разделенные запятыми для нескольких).
use можно настроить для нескольких, реализуя мультитенантность.
<user name="root">
<property name="password">123456</property>
<property name="schemas">test</property>
</user>
Новые добавленные свойства шифрования:
<!--включать ли шифрование-->
<property name="encrypt">1</property>
<!--следует ли расшифровывать возвращаемые результаты-->
<property name="decrypt">1</property>
<!--использовать ли встроенный алгоритм шифрования 1-да 0-нет встроенный алгоритм шифрования поддерживает зашифрованный запрос like-->
<!--если требуется пользовательский алгоритм шифрования, скачайте исходный код mycat-encrypt-customize и самостоятельно реализуйте encode и decode
*Примечание: данный перевод выполнен автоматически и может содержать неточности.* **Метод: для шифрования данных необходимо заменить файл encrypt-core-2.0.jar**
1
12345678ABCDEFGH
## Шифрование конфигурации
### Редактирование файла encrypt.xml
```xml
<!-- Кодировка базы данных должна быть utf-8 или ut8mb64. Все свойства обязательны -->
<!-- Шифруется схема, указанная в schema.xml. Схема должна быть уникальной и не повторяться -->
<server schema="test">
<!-- Если auto установлено в 1, конфигурация поля будет автоматически зашифрована. dbType поддерживает только mysql -->
<!-- Атрибут name источника данных должен соответствовать атрибуту database схемы -->
<datasource name="test" ip="localhost" port="3307" username="root" password="root" auto="1" dbType="mysql">
<!-- Имя поля, которое необходимо зашифровать -->
<column name="card_code">
<!-- Таблица и первичный ключ, которые необходимо зашифровать. Программа обновит значение зашифрованного поля на основе первичного ключа -->
<table name="real_people_copy1" pk="people_id"/>
</column>
<column name="name">
<table name="real_people_copy1" pk="people_id"/>
</column>
</datasource>
</server>
Для создания собственного алгоритма шифрования скачайте исходный код пакета mycat-encrypt-customize и самостоятельно реализуйте методы encode и decode. Затем замените файл encrypt-core-2.0.jar.
Чтобы восстановить уже зашифрованные данные, можно скачать пакет инструментов для дешифрования. Используйте метод, аналогичный mycat, и настройте файл decrypt.xml для автоматического дешифрования. После завершения процесса программа автоматически завершит работу.
Скачать инструменты для дешифрования
Следите за публичным аккаунтом «Спиральное программирование для гиков», чтобы присоединиться к группе для обсуждения и совместного обучения, а также получить доступ к обширным учебным ресурсам.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )