1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zrxjava-mycat-encrypt-server

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Введение

Данное промежуточное ПО было оптимизировано и модифицировано на основе исходного кода mycat. Оно поддерживает прозрачное шифрование на уровне столбцов в базе данных и совместимо с MySQL 8.

ПО поддерживает оригинальный протокол MySQL и позволяет подключаться к другим типам баз данных через конфигурационный файл с использованием драйвера jdbc, хотя это не рекомендуется. Mycat считается лучшим партнёром для MySQL, и использование других баз данных может привести к нестабильности.

Использование данного ПО аналогично использованию mycat, но с добавлением конфигурационного файла encrypt.xml для настройки шифрования и нескольких свойств шифрования в server.xml.

Здесь мы подробно рассмотрим использование и конфигурацию шифрования, а также рекомендуем обратиться к документации mycat для получения информации о других аспектах конфигурации. Также не следует использовать разделение на библиотеки и таблицы без крайней необходимости, так как mycat представляет собой псевдораспределённую базу данных, и последующее расширение или изменение правил узлов может быть сложным. Большинство компаний используют только функцию разделения чтения и записи.

Обратите внимание на публичный аккаунт «Спиральный программист-экстремал», где вы можете присоединиться к группе для обсуждения и совместного обучения, а также получить доступ к обширным ресурсам для изучения.

Установка

Скачайте релизную сжатую папку и распакуйте её.

v1.6.7.8-release скачать

Запуск

Linux

./mycat start — запуск

./mycat stop — остановка

./mycat console — передний план

./mycat restart — перезапуск службы

./mycat pause — пауза

./mycat status — просмотр состояния запуска

Windows

Запустите 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.xml

Schema — это конфигурация фактической логической библиотеки, можно настроить несколько.

DataNode — это фрагмент, соответствующий логической библиотеке.

DataHost — это фактический адрес конфигурации физической библиотеки, можно настроить главный, подчиненный, ведущий-ведомый и другие конфигурации. Несколько dataHost представляют адреса физических библиотек, соответствующих фрагментам. Ниже приведены writeHost, readHost, представляющие, настроена ли эта фрагментация для мультизаписи, главного-подчиненного, чтения-записи и других высокоуровневых функций.

Атрибут баланса

Тип балансировки нагрузки, в настоящее время доступны 3 вида:

  1. balance="0", не включает механизм разделения чтения-записи, все операции чтения отправляются на доступный writeHost.
  2. balance="1", все readHost и stand by writeHost участвуют в выборе оператора select. Проще говоря, когда режим двойного ведущего-двойного ведомого (M1->S1, M2->S2, и M1 и M2 являются ведущими и ведомыми), в нормальных условиях M2, S1, S2 участвуют в операторе выбора балансировки нагрузки.
  3. balance="2", все операции чтения случайным образом распределяются между writeHost и readhost.
  4. balance="3", все запросы на чтение случайным образом направляются на выполнение соответствующего readhost writeHost, writeHost не несёт нагрузки чтения.

Атрибут writeType

Тип балансировки нагрузки, в настоящее время доступно 3 вида:

  1. writeType="0", все операции записи отправляются на первый writeHost в конфигурации, после сбоя первого writeHost переключение происходит на следующий доступный writeHost, запись о переключении хранится в файле конфигурации dnindex.properties.
  2. writeType="1", все операции записи случайным образом отправляются на writeHost в конфигурации. 1.5 и более поздние версии устарели.

Атрибут 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>

Настройка server.xml

Добавьте логическую библиотеку 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 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Расширить Свернуть
GPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/zrxjava-mycat-encrypt-server.git
git@gitlife.ru:oschina-mirror/zrxjava-mycat-encrypt-server.git
oschina-mirror
zrxjava-mycat-encrypt-server
zrxjava-mycat-encrypt-server
master