Знаки вопроса в redmine

После установки свеженького redmine обнаружилась проблема с отображением русских символов. Вместо них были только знаки вопроса. Для решения данной проблемы опишем небольшой скрипт на bash, естественно предварительно забекапив базу:

#!/bin/sh
mysqldump -u root -ppassword --default-character-set=latin1 -c --insert-ignore \
--skip-set-charset redmine > dev.db
for i in dev; do iconv -f ISO-8859-1 -t UTF-8 <$i.db >${i}8.db; done

for i in *8.db; do perl -pi -w -e 's/CHARSET=latin1/CHARSET=utf8/g;' $i; done

for i in redmine; do \
  mysql --user=root -ppassword --execute "DROP DATABASE $i; CREATE DATABASE $i \
  CHARACTER SET utf8 COLLATE utf8_general_ci;"; \
done

mysql --user=root -ppassword --max_allowed_packet=16M --default-character-set=utf8 \
  redmine < dev8.db

Если это не помогло, то необходимо произвести настройку на стороне сервера. Открываем файл /etc/mysql/my.cnf и сравниваем с моим:

[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock
default-character-set = utf8
[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0
[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
init_connect=‘SET collation_connection = utf8_unicode_ci'
character-set-server = utf8
collation-server = utf8_unicode_ci
bind-address            = 127.0.0.1
key_buffer              = 16M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 8
myisam-recover         = BACKUP
query_cache_limit       = 1M
query_cache_size        = 16M
log_error = /var/log/mysql/error.log
expire_logs_days        = 10
max_binlog_size         = 100M
[mysqldump]
quick
quote-names
max_allowed_packet      = 16M
[mysql]
[isamchk]
key_buffer              = 16M
!includedir /etc/mysql/conf.d/

[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock
default-character-set = utf8
[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0
[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
init_connect=‘SET collation_connection = utf8_unicode_ci'
character-set-server = utf8
collation-server = utf8_unicode_ci
bind-address            = 127.0.0.1
key_buffer              = 16M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 8
myisam-recover         = BACKUP
query_cache_limit       = 1M
query_cache_size        = 16M
log_error = /var/log/mysql/error.log
expire_logs_days        = 10
max_binlog_size         = 100M
[mysqldump]
quick
quote-names
max_allowed_packet      = 16M
[mysql]
[isamchk]
key_buffer              = 16M
!includedir /etc/mysql/conf.d/

Оставить ответ

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