|
10.2.23 also does not like your collation-server.
Proof, from the fresh download
C:\Users\wlad\Downloads\mariadb-10.2.23-winx64\mariadb-10.2.23-winx64\bin>mysqld --console --collation-server=utf8_unicode_ci
2019-05-16 18:24:53 18264 [Note] mysqld (mysqld 10.2.23-MariaDB) starting as process 5932 ...
2019-05-16 18:24:53 18264 [ERROR] COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'latin1'
2019-05-16 18:24:53 18264 [ERROR] Aborting
|
|
you need
character-set-server=utf8
in your my.ini
|
|
character-set-server=utf8 - стоит по умолчанию.
Откатился на 10.2.23 - работает без замечаний.
Вот мой my.ini
[mysqld]
character-set-server=utf8
collation-server = utf8_unicode_ci
datadir=C:/Program Files/MariaDB 10.2/data
port=3306
innodb_buffer_pool_size=1024M
event_scheduler = ON
innodb_flush_log_at_trx_commit = 2
long_query_time = 60
slow_query_log = ON
query_cache_type = ON
query_cache_size = 16M
[client]
port=3306
plugin-dir=C:/Program Files/MariaDB 10.2/lib/plugin
default-character-set = utf8
|
|
Я попробовал - все работает, причем одинаково в 10.2.23 и 10.2.24
По умолчанию ничего utf8 не стоит. в my.ini должно быть
[mysqld]
collation-server=utf8_unicode_ci
character-set-server=utf8
C:\Users\wlad\Downloads\mariadb-10.2.24-winx64\bin>mysql -uroot -e "show variables like '%server'"
-------------------------------------+
-------------------------------------+
| character_set_server |
utf8 |
| collation_server |
utf8_unicode_ci |
|
|
По умолчанию - это я выставил в my.ini.
Выше писал, что my.ini содержит:
[mysqld]
character-set-server=utf8
collation-server = utf8_unicode_ci
...
Не все так просто.
Проверил на пустой БД. Тоже нет проблем.
Еще раз детальнее о ситуации.
Есть база размером почти 7 ГБ. Работает на 10.2.23, проблем нет.
Обновляю версию до 10.2.24. Все нормально, проблем нет. Но стоит только остановить сервис MySql - больше его не удается запустить.
Если закомментировать строку collation-server=utf8_unicode_ci, то сервис запускается.
Подозреваю, что после обновления версии и запуска сервиса идет обновление таблиц под эту версию. Вот оно и вносит какие-то изменения в таблицы, после которых сервис уже не запускается.
С учетом того, что на пустой БД все работает без замечаний, проблема кроется объектах БД, которые я создаю.
Если на пустой БД (10.2.24) восстановить данные из бекапа, то все работает. mysql_upgrade выполняется без ошибок. Сервис перезапустил - все ок.
Похоже проблема в скриптах обновлений, которые запускаются после установки версии 10.2.24.
Что и как я еще могу проверить? Как определить на какой таблице (объекте) сервис подвисает? Есть возможность посмотреть детали по ошибке? Буду признателен за любую информацию, которая поможет устранить ошибку.
|
|
Если закомментировать строчку collection-server=utf8_unicode_ci и запустить сервис, то что возвращает вот этот запрос:
SHOW VARIABLES LIKE 'char%';
|
?
Попробуйте активировать general log, добавив вот такую строчку в mysql.ini:
Возможно, удастся увидеть весь запрос в логе.
Запускается ли сервер в режиме standalone?
Вот тут описание:
https://dev.mysql.com/doc/refman/8.0/en/windows-start-command-line.html
|
|
Без collection-server=utf8_unicode_ci
Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir C:\Program Files\MariaDB 10.2\share\charsets\
|
|
Если после обновления запустить в standalone дает ошибку COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'latin1'
в логах ничего.
-Если закомментировать collection-server=utf8_unicode_ci в логах:
2019-07-05 10:47:42 7376 [Note] CONNECT: Version 1.06.0009 Jun 14 2019 21:52:00
2019-07-05 10:47:42 7376 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2019-07-05 10:47:42 7376 [Note] InnoDB: Uses event mutexes
2019-07-05 10:47:42 7376 [Note] InnoDB: Compressed tables use zlib 1.2.11
2019-07-05 10:47:42 7376 [Note] InnoDB: Number of pools: 1
2019-07-05 10:47:42 7376 [Note] InnoDB: Using SSE2 crc32 instructions
2019-07-05 10:47:42 7376 [Note] InnoDB: Initializing buffer pool, total size = 1G, instances = 8, chunk size = 128M
2019-07-05 10:47:42 7376 [Note] InnoDB: Completed initialization of buffer pool
2019-07-05 10:47:42 7376 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
2019-07-05 10:47:42 7376 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
2019-07-05 10:47:42 7376 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2019-07-05 10:47:43 7376 [Note] InnoDB: Starting shutdown...
2019-07-05 10:47:43 7376 [ERROR] Plugin 'InnoDB' init function returned error.
2019-07-05 10:47:43 7376 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2019-07-05 10:47:43 7376 [Note] Plugin 'FEEDBACK' is disabled.
2019-07-05 10:47:43 7376 [ERROR] Unknown/unsupported storage engine: InnoDB
2019-07-05 10:47:43 7376 [ERROR] Aborting-
|
|
То есть если запустить `mysqld.exe --standalone`, то пишет только эту ошибку про COLLECTION и больше ничего?
Ни в general log, ни в error log тоже ничего не дописывается?
|
|
если имеется ввиду файл "C:\mysqld.trace", то его нет. В файле server.err ничего нет. Возможно, нужно нужно было под админом запускать?
у меня есть подозрения, что эксперимент был не совсем чистым (правильным). Проверю все наново - сообщу.
|
|
There is no mysqld.trace with release binary. the option --standalone does exactly nothing.
if you want to have the output to the command line, stop the service, and run mysqld --console (use Ctrl-C to stop mysqld then, if it is running).
|
|
В логах ничего нет. В консоле ошибка
C:\Program Files\MariaDB 10.2\bin>mysqld --defaults-file=..\data\my.ini --standalone
2019-07-05 14:00:29 2876 [Note] mysqld (mysqld 10.2.25-MariaDB-log) starting as process 5884 ...
2019-07-05 14:00:29 2876 [ERROR] COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'latin1'
2019-07-05 14:00:29 2876 [ERROR] Aborting
|
|
А если запустить так:
mysqld --defaults-file=..\data\my.ini --standalone --character-set-server=utf8
Можно приаттачить к этому MDEV Ваш my.ini ?
More -> Attach files
Еще такой момент:
У Вас много разных баз данных.
Интересно взглянуть на все файлы `..\data*\db.opt`
|
|
C:\Program Files\MariaDB 10.2\bin>mysqld --console
should work fine.
I really doubt there will be any error pertinent to --console, if you start it like this
you're already using the default my.ini file, you do not need --default-file, I guess
|
|
проблема с collation-server = utf8_unicode_ci
Если убрать его, то запуск проходит без ошибок. Аналогично mysqld --defaults-file=..\data\my.ini --standalone --character-set-server=utf8
В my.ini важна только строка collation-server = utf8_unicode_ci. Если ее убрать ошибки тоже нет.
У меня такое впечатление, что в версиях 10.2.24 и выше убрали сопоставление utf8_unicode_ci ?
|
|
db.opt db (1).opt db (2).opt db (3).opt db (4).opt db (5).opt db (6).opt db (7).opt db (8).opt db (9).opt db (10).opt db (11).opt
|
|
mysqld --defaults-file=..\data\my.ini --standalone --character-set-server=utf8
Запускается без ошибок.
Добавил в my.ini character-set-server=utf8
Ошибок нет!
Спасибо!!!
|