Переключение базы данных на mysql
Некоторые версии дистрибутива SberMobile Server содержат пакет MySQL сервера. Если этот пакет был выбран для установки, сервер будет автоматически использовать базу данных MySQL, и выполнять ниже описанные этапы Вам не нужно. Если пакет MySQL был установлен, то его файлы находятся в подпапке Инсталлятор настраивает MySQL для автозапуска во время загрузки ОС. Конфигурации SberMobile Server и MySQL по умолчанию оптимизируются для получения максимальной производительности. Имейте в виду,что пакет MySQL предварительно оптимизирован для производительности и требования к памяти у него довольно высокие. Вам, возможно, потребуется перенастроить инсталляцию MySQL, если ваш сервер имеет менее 4 Гб оперативной памяти. |
Чтобы переключиться на использование MySQL в качестве сервера баз данных, следуйте общим инструкциям из параграфа Переключение на другой движок базы данных. Ниже приводятся специфичные для этого SQL-сервера шаги.
MySQL-connector-java-5.X.XX-ga-bin.jar
, он находится в подпапке /lib
в папке для инсталляции SberMobile Server. Чтобы добиться лучшей производительности и совместимости с поздними версиями MySQL, можно обновить JDBC-драйвер MySQL до самой последней версии. На момент написания документации, эта версия доступна на http://www.mysql.com/products/connector/j/.Database Driver
в значение com.mysql.jdbc.Driver
. Это имя Java-класса для драйвера MySQL.Database URL
для MySQL имеет следующий вид: jdbc:mysql://[host][:port][/database]
, где host
- IP-адрес или DNS-имя сервера MySQL (может быть пустая строка или localhost
), port
- это номер порта, на котором запущен сервер MySQL (пропустите эту часть URL чтобы использовать значение по умолчанию), database
- имя базы данных, содержащей данные SberMobile Server'а. В качестве имени базы данных можно использовать server
. Например, если Ваш MySQLSQL запущен на машине 192.168.0.1 с портом по умолчанию, используйте следующую строку в качестве URL: jdbc:mysql://192.168.0.1/server
.Database Dialect
в MySQL 5 (MySQL5InnoDBDialect
), если Вы используете MySQL 5 или MySQL (MySQLInnoDBDialect
) для старых версий.Если вы хотите использовать символы не из Юникода, необходимо указать параметр characterEncoding. Это можно сделать двумя способами:
|
Если вы используете MySQL 8, необходимо указать следующий параметр: |
Установка mysql
Для использования MySQL с SberMobile требуется сделать несколько изменений в настройках MySQL. Обычно эти настройки производятся изменением конфигурационного файла MySQL (по умолчанию my.ini
).
1. Добавьте параметр max_allowed_packet=100M
, чтобы разрешить большие запросы.
2. Установите значение параметра max_connections
больше, чем значение общих настроек переменной SberMobile Server'а Минимальный размер пула соединений (например, max_connections=1000
).
3. Установите значение параметра innodb_buffer_pool_size
в максимальное значение размера RAM, которое сервер MySQL может использовать. В случае выделенного сервера баз данных это значение стоит поставить в 80% от всей доступной в системе памяти.
4. Установите значение параметра innodb_log_file_size
в 25-50% от innodb_buffer_pool_size
.
5. Добавьте строки character-set-server = utf8
и collation-server = utf8_unicode_ci
к конфигурации.
Конфигурационный файл mysql
Ниже приведен пример конфигурационного файла MySQL 5.7, подходящего для больших инсталляций SberMobile.
[mysqld]
port = 3306
# Вы можете использовать настройки сокета из созданного автоматически файла конфигурации.
socket =
/tmp/mysql.sock
default-storage-engine = INNODB
datadir =
/data/mysql
max_connections = 1000
max_allowed_packet = 100M
innodb_flush_log_at_trx_commit = 0
innodb_buffer_pool_size =
2G
innodb_log_file_size =
500M
innodb_log_buffer_size = 8M
innodb_lock_wait_timeout = 1200
innodb_file_per_table = 1
sort_buffer_size = 20M
query_cache_size = 100M
table_open_cache = 10000
table_definition_cache = 10000
thread_cache_size = 32
innodb_thread_concurrency = 0
character-set-server = utf8
collation-server = utf8_unicode_ci
Необходимо изменить /data/mysql на подлинный каталог данных для вашей инсталляции сервера MySQL. В Linux путь каталога файлов MySQL /var/lib/mysql. |
Изменение рамеров буфера
Инсталляция MySQL в пакете с SberMobile Server для Windows конфигурируется для серверов высокой производительности. Если сервер установлен на низкопроизводителном устройстве (например, на ноутбуке), сервер MySQL может не запуститься из-за проблемы выделенной буферной памяти. В этом случае необходимо уменьшить размеры буфера:
- Проверьте, что
MySQL для SberMobile
сервиса/процесса не запущен на сетевом компьютере или остановите его, если он запущен (вы можете контролировать сервис изControl Panel > Administration > Services
) - Поправьте файл
mysql/my.ini
, расположенный в дистрибутивной папке SberMobile Server'а - Уменьшите
innodb_buffer_pool_size
, например, установите его на500M
- Уменьшите
innodb_log_file_size
на 25-50% отinnodb_buffer_pool_size
, например, установите его на200M
- Удалите файл регистрации MySQL (
mysql/ib_logfile0
иmysql/ib_logfile1)
- Снова запустите
MySQL
для сервисаSberMobile