解决用官方容器启动redmine无法插入中文字符的问题
jiangzhaowei@kitking:/kitking/redmineIot$ sudo docker-compose up -d
Creating network "redmineiot_default" with the default driver
Creating redmineiot_mysql_1 ...
Creating redmineiot_web_1 ...
Creating redmineiot_mysql_1
Creating redmineiot_web_1 ... done
docker exec -it redmineiot_web_1 /bin/bash
root@5737a31e5531:/usr/src/redmine# cd /home/git
root@5737a31e5531:/home/git# chown git:git repositories/
root@5737a31e5531:/home/git# su git
git@5737a31e5531:~$ gitolite setup -pk ../redmine/.ssh/id_rsa.pub
Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/
Initialized empty Git repository in /home/git/repositories/testing.git/
WARNING: keydir/id_rsa.pub duplicates keydir/admin.pub, sshd will ignore it
之前采用docker-compose顺利搭建了redmine,但是在使用时发现无法插入中文字符,始终报internal server error错误,后来看日志,显示插入异常,现在终于明白为啥很多人安装不适用官方镜像了,问题出现了,总得解决吧,进一步分析原因是由于数据库的字符集是latin1,终于明白问题所在,然后去看了下官方给的脚本,默认是使用的utf8编码,所有的数据库表创建都是未指定字符集的,因此采用数据库脚本来变更,要想把所有的数据表的字符集改变为utf-8,手动的方式是不可取的,可能误操作数据库,因此采用存储过程来实现,下面给出存储过程脚本。
jiangzhaowei@kitking:/kitking/redmineIot$ docker exec -it redmineiot_mysql_1 /bin/bash
root@c5588a506b78:/# mysql -uredmine -py0ur_passw0rd
DELIMITER $$
CREATE PROCEDURE `redmine`.`update_char_set`()
BEGIN
DECLARE done INT DEFAULT ;
DECLARE t_sql VARCHAR();
DECLARE tableName VARCHAR();
DECLARE lists CURSOR FOR SELECT table_name FROM `information_schema`.`TABLES` WHERE table_schema = 'redmine';
DECLARE CONTINUE HANDLER FOR SQLSTATE '' SET done = ;
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无法插入中文字符的问题的更多相关文章
- mysql命令框中向表中插入中文字符,在可视化工具MySQL Workbeach或phpMyAdmin中不显示或显示乱码的问题解决
一.问题导出 在刚刚开始学习MySQL数据库应用与开发这门课程的时候,老师建议我们使用可视化工具MySQL Workbeach进行数据库的相关管理,但是小编在mysql命令框使用insert命令向表 ...
- MySQL不能插入中文字符及中文字符乱码问题
MySQL的默认编码是Latin1,不支持中文,要支持中午需要把数据库的默认编码修改为gbk或者utf8.在安装后MySQL之后,它的配置文件不是很给力,不知道你们的是不是,反正我的是! 开始插入中文 ...
- mysql无法插入中文字符解决
1. 基于可维护的角度,虽然latin1没什么问题,但是还是尽量换成utf8或者gb系列 2. 出现乱码时: SHOW VARIABLES LIKE 'character%'SHOW VARIABLE ...
- 解决Django在mariadb创建的表插入中文乱码的问题
1.确保你的mariadb数据库的character_set_connection.character_set_database.character_set_server的编码均为utf8 Maria ...
- mysql数据库无法插入中文字符
分析原因:这是因为之前修改了数据库的编码,但数据表的编码却没有跟着改变导致的. 安装mysql 时,使用的是latin编码(随后修改为utf8).建的数据表是在latin编码下建立的.而jsp页面使用 ...
- mysql客户端不能插入中文字符
问题:输入中文报错:Incorrect string value 步骤: 1.查看MySQL编码设置 show variables like '%character%'; 2.重新设置编码(注意:ut ...
- 《1---关于解决MySQL在控制台插入中文乱码问题》
说明:以下所有操作都是基于我个人的电脑及示例,读者可以参考我这个解决过程,去解决自己的问题,如有其它疑问,欢迎留言交流. 首先来看看我遇到的问题: [1]查看数据库: [2]使用test数据库: [3 ...
- 使用JDBC向Kudu表插入中文数据乱码(转载)
参考:https://cloud.tencent.com/developer/article/1077763 问题描述 使用Impala JDBC向Kudu表中插入中文字符,插入的中文字符串乱码,中文 ...
- mysql 插入中文时出现ERROR 1366 (HY000): Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'usern ame' at row 1
1 环境: MySQL Server 6.0 命令行工具 2 问题 : 插入中文字符数据出现如下错误: ERROR 1366 (HY000): Incorrect string value: '\ ...
随机推荐
- LCD 驱动 S3C2440A
LCD Control 1 Register 以16BPP为例 LCD Control 2 Register LCD Control 3 Register LCD Control 4 Register ...
- Keystore was tampered with, or password was incorrect
#修改key条目密码 # keytool -keypasswd -alias test.com -keypass oldkeypwd -new newkeypwd -storepass storepw ...
- [AI] 论文笔记 - U-Net 简单而又接近本质的分割网络
越简单越接近本质. 参考资料 U-Net: Convolutional Networks for Biomedical Image Segmentation Abstract & Introd ...
- hdu1384Intervals(差分约束)
#include <bits/stdc++.h> using namespace std; ; const int inf = 0x3f3f3f3f; int n, head[maxn], ...
- C# 验证控件的使用RequiredFieldValidator&CompareValidator
使用验证控件可以向服务器提交表单数据时验证表单内容,下面以RequiredFieldValidator和CompareValidator为例说明验证控件的用法 RequiredFieldValidat ...
- robot framework 笔记(四),使用时遇到的问题
背景: 使用rf遇到的一些问题汇总 一:跑WEBUI的时候报错: [ WARN ] Keyword 'Capture Page Screenshot' could not be run on fail ...
- onreadystatechange和onload区别分析
onreadystatechange和onload区别分析 script加载 IE的script 元素只支持onreadystatechange事件,不支持onload事件. FireFox,Op ...
- 常见的transformation算子
RDD:RDD分区数,若从HDFS创建RDD,RDD的分区就是和文件块一一对应,若是集合并行化形式创建,RDD分区数可以指定,一般默认值是CPU的核数. task:task数量就是和分区数量对应. 一 ...
- [NPM + React] Prepare a Custom React Hook to be Published as an npm Package
Before we publish our package, we want to make sure everything is set up correctly. We’ll cover vers ...
- Tips on Probability Theory
1.独立与不相关 随机变量X和Y相互独立,有:E(XY) = E(X)E(Y). 独立一定不相关,不相关不一定独立(高斯过程里二者等价) .对于均值为零的高斯随机变量,“独立”和“不相关”等价的. 独 ...