Ширина таблицы Mysql в два раза больше необходимого
Всем привет! При любых запросах к базе данных Mysql (проводимых непосредственно с помощью клиента mysql) столбцы, содержащие русский текст, в два раза шире необходимого (все остальные столбцы — с числами, с латиницей — отображаются правильно). Как я предполагаю, это происходит из-за того, что один кириллический символ в кодировке utf-8 занимает два байта, и при подсчёте длины строки считаются именно байты, а не символы; отсюда неверная, преувеличенная длина строки и слишком широкие столбцы. Как это исправить? пытался играть с кодировкой, устанавливать utf-8, чтобы он корректно обрабатывался, но не выходит.
Кое-какие данные:
~ ➤ mysql --version
mysql Ver 8.0.26-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))
~ ➤ uname -a
Linux lis-pc 5.4.0-81-generic #91-Ubuntu SMP Thu Jul 15 19:09:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Пример «кривой» таблицы:
mysql> select bscore, name from work order by bscore desc limit 10;
+--------+----------------------------------------------------------------------------+
| bscore | name |
+--------+----------------------------------------------------------------------------+
| 8.9764 | Побег из Шоушенка |
| 8.9712 | Один литр слёз |
| 8.954 | Зелёная миля |
| 8.9029 | Форрест Гамп |
| 8.8938 | Леон |
| 8.8582 | Достучаться до небес |
| 8.8484 | Место встречи изменить нельзя |
| 8.8235 | Король Лев |
| 8.8226 | Шерлок Холмс и доктор Ватсон: Знакомство |
| 8.8203 | Рик и Морти |
+--------+----------------------------------------------------------------------------+
10 rows in set (0,00 sec)