“Redmine ins”的版本间的差异

来自linux中国网wiki
跳到导航 跳到搜索
第26行: 第26行:
  
 
</pre>
 
</pre>
 +
=trouble shooting=
 +
==解决用官方容器启动redmine无法插入中文字符的问题 ==
 +
redmine 中文 internal error
 +
 +
<pre>
 +
 +
之前采用docker-compose顺利搭建了redmine,但是在使用时发现无法插入中文字符,始终报internal server error错误,后来看日志,显示插入异常,现在终于明白为啥很多人安装不适用官方镜像了,问题出现了,总得解决吧,进一步分析原因是由于数据库的字符集是latin1,终于明白问题所在,然后去看了下官方给的脚本,默认是使用的utf8编码,所有的数据库表创建都是未指定字符集的,因此采用数据库脚本来变更,要想把所有的数据表的字符集改变为utf-8,手动的方式是不可取的,可能误操作数据库,因此采用存储过程来实现,下面给出存储过程脚本。
 +
 +
DELIMITER $$
 +
CREATE PROCEDURE `redmine`.`update_char_set`()
 +
    BEGIN
 +
    DECLARE done INT DEFAULT 0;
 +
    DECLARE t_sql VARCHAR(256);
 +
    DECLARE tableName VARCHAR(128);
 +
    DECLARE lists CURSOR FOR SELECT table_name FROM `information_schema`.`TABLES` WHERE table_schema = 'redmine';
 +
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
 +
    OPEN lists;
 +
    FETCH lists INTO tableName;
 +
    REPEAT
 +
        SET @t_sql = CONCAT('ALTER TABLE ', tableName, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci');
 +
        PREPARE stmt FROM @t_sql;
 +
        EXECUTE stmt;
 +
        DEALLOCATE PREPARE stmt;
 +
    FETCH lists INTO tableName;
 +
    UNTIL done END REPEAT;
 +
    CLOSE lists;
 +
    END$$
 +
DELIMITER ;
 +
 +
将存储过程在数据库所在的服务器上执行一遍,
 +
 +
然后是改变数据库的字符集和字符集合,再更新每个数据表的,执行脚本如下:
 +
 +
ALTER DATABASE redmine DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
 +
CALL redmine.update_char_set();
 +
 +
 +
</pre>
 +
 +
[https://www.cnblogs.com/jiangzhaowei/p/11300044.html  解决用官方容器启动redmine无法插入中文字符的问题]
 +
 
=see also=
 
=see also=
  

2020年7月23日 (四) 06:21的版本

http://192.168.11.102:8080/login

用户和密码 
admin   ADMIN1234566



默认用户密码
admin
admin 

ADMIN1234566



docker-compose up -d  

https://hub.docker.com/_/redmine/



创建有错误尼  少用中文就行了 

Internal error

trouble shooting

解决用官方容器启动redmine无法插入中文字符的问题

redmine 中文 internal error

之前采用docker-compose顺利搭建了redmine,但是在使用时发现无法插入中文字符,始终报internal server error错误,后来看日志,显示插入异常,现在终于明白为啥很多人安装不适用官方镜像了,问题出现了,总得解决吧,进一步分析原因是由于数据库的字符集是latin1,终于明白问题所在,然后去看了下官方给的脚本,默认是使用的utf8编码,所有的数据库表创建都是未指定字符集的,因此采用数据库脚本来变更,要想把所有的数据表的字符集改变为utf-8,手动的方式是不可取的,可能误操作数据库,因此采用存储过程来实现,下面给出存储过程脚本。

DELIMITER $$
CREATE PROCEDURE `redmine`.`update_char_set`()
    BEGIN
     DECLARE done INT DEFAULT 0;
     DECLARE t_sql VARCHAR(256);
     DECLARE tableName VARCHAR(128);
     DECLARE lists CURSOR FOR SELECT table_name FROM `information_schema`.`TABLES` WHERE table_schema = 'redmine';
     DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
     OPEN lists;
     FETCH lists INTO tableName;
     REPEAT
        SET @t_sql = CONCAT('ALTER TABLE ', tableName, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci');
        PREPARE stmt FROM @t_sql;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;
     FETCH lists INTO tableName;
     UNTIL done END REPEAT;
     CLOSE lists;
    END$$
DELIMITER ;

将存储过程在数据库所在的服务器上执行一遍,

然后是改变数据库的字符集和字符集合,再更新每个数据表的,执行脚本如下:

ALTER DATABASE redmine DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CALL redmine.update_char_set();

 

解决用官方容器启动redmine无法插入中文字符的问题

see also

HowTo Install Redmine on FreeBSD or CentOS

大家都在用哪些Redmine插件呢?

使用docker-compose快速安装redmine

使用docker容器安装redmine插件

RedMine安装教程(Redmine3.4.5)

redmine的工单查询模块

redmine工作流程总结


阿里云使用Docker部署工单系统(redmine)

使用docker搭建公司redmine服务器

Redmine的安装、总结和心得

linux redmine安装及插件安装的方法总结

Redmine部署以及插件安装