Михаил

кодировка при создании mysql базы в ubuntu24

добрый день!

при создании mysql базы в ubuntu24 - при выборе utf8mb4 - создается база с кодировкой utf8mb4_0900_ai_ci

а нужно чтобы создавалась как раньше utf8mb4_general_ci

для битрикс проектов вообще нужно умолчание utf8mb4_unicode_ci - иначе битрикс ругается на кодировку 

есть ли возможность указать в конфиге панели или вообще где нибудь чтобы панель создавала базу с нужной кодировкой utf8mb4_general_ci или utf8mb4_unicode_ci ?

25.01.2025 14:51

IgorG

Добрый день!

Можно внести в конфигурационный файл mysql глобальные настройки конфигурации кодировки и после это перезапустить сервер mysql. Точно не помню, где в Ubuntu 24.04 этот конфиг находится, но это легко выяснить командой:

mysqld --verbose --help | grep -A 1 "Default options"

Должен быть где-то вроде /etc/mysql/my.cnf

Внесите в его секцию [mysqld] две строки

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci

и перезапустите MySQL для применения изменений.

После этого, при создании базы данных, если явно не указать другую кодировку, будет использоваться utf8mb4_general_ci по умолчанию.

27.01.2025 02:11

Михаил

cat /etc/mysql/mysql.conf.d/mysqld.cnf | grep utf8
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci

все равно создает с  utf8mb4_0900_ai_ci

mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database   | utf8mb4            |
| character_set_filesystem | binary             |
| character_set_results    | utf8mb4            |
| character_set_server     | utf8mb4            |
| character_set_system     | utf8mb3            |
| collation_connection     | utf8mb4_0900_ai_ci |
| collation_database       | utf8mb4_general_ci |
| collation_server         | utf8mb4_general_ci |
+--------------------------+--------------------+
10 rows in set (0,00 sec)

27.01.2025 07:54

IgorG

Попробуйте еще

   [mysqld]
   collation_connection = utf8mb4_general_ci

добавить.

27.01.2025 08:30

Михаил

unknown variable 'collation_connection=utf8mb4_general_ci'

mysql не запустилась

27.01.2025 10:03

IgorG

27.01.2025 11:07

Михаил

прописал 

character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init-connect = 'SET NAMES utf8mb4 COLLATE utf8mb4_general_ci'
init-connect = 'SET collation_connection = utf8mb4_general_ci'
character-set-client-handshake = FALSE

это ничего не дало 

если создавать руками  - то проблем нет 

база создается с utf8mb4_general_ci

почему бы панели явно не указывать при создании базы utf8mb4_general_ci  - так как база по умолчанию создается панелью с utf8mb4

хорошо бы иметь возможность прописать опцию в ispmgr.conf где например можно указать кодировку при создании базы по умолчанию - например для сайтов битрикс  utf8mb4_unicode_ci  utf8mb4 или для utf8   - utf8_unicode_ci

CREATE DATABASE new2 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

29.01.2025 14:08

IgorG

Создайте соответствующий фичереквест.

30.01.2025 01:57