Redmine: неправильная кодировка в базе данных

Если русскоязычный интерфейс отображается корректно, а вот содержимое, например, вместо русских букв пишет ??? типа как тут:

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

1. Идем в MYSQL

mysql -uroot -p

2. Узнаем кодировку базы:

use our_database_name;
show variables like "character_set_database";

Если показывает что-то типа

+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| character_set_database | latin1 |
+------------------------+--------+

то у нас стоит англоязычная кодировка.

3. Запускаем команду

alter database `redmine_successionua` character set utf8;

Если не помогло, тогда делаем следующее.

4. Выходим с mysql и дампим нашу базу:

mysqldump -uroot -p our_database_name --allow-keywords --create-options --complete-insert --default-character-set=latin1 --add-drop-table > dump.sql
cp dump.sql /tmp
nano dump.sql

5. Редактируем дамп.

Ищем слово latin1 (или какую вам кодировку выдало) и меняем на нужную нам (в моем случае utf8).

Примечание:  кодировка должна быть в синтаксисе оператора CREATE TABLE или CREATE DATABASE.

6. После замены заливаем базу обратно:

mysql -uroot -p our_database_name --default-character-set=utf8 < dump.sql

Всё, русские буквы в Redmine должны корректно отображаться.

Размещено в Redmine и отмечено .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.