gerrit使用mysql数据库及中文提交

以下内容无效,虽然可以解决subject乱码的问题,但在自动补全的部分,会引起内部错误。目前我已经放弃了mysql做后台数据库,改为h2数据库,所有的中文都不再成为问题。

很早之前使用gerrit的时候,发现中文提交的日志会显示成”??”,但在
详细的Change中却显示正常,一直以为是gerrit的问题,但之前也仅仅是
随便测试下,主要是没有专用的服务器。现在准备将所有的都转到gerrit
中,这个问题不解决不行了。

今天尝试解决这个问题,先查gerrit的代码,查change, 查patchset,
查到了mysql数据库上,但我对mysql数据库不熟悉,专门装了个
phpmyadmin去看数据存储,发现这个数据是存在mysql数据库中的。

但mysql数据库中的是乱码!!!!,问题的原因找到了,就想办法解
决。首先将changes表的结构subject项的编码修改为utf8-bin,我是通过
phpmyadmin修改的,不太清楚mysql下如何操作最方便,然后上传还是乱码。

如果传输的数据连接编码本身是错误的。。。。有这个可能,找一找在
gerrit中如何设置连接的编码吧,我在
gerrit-server\src\main\java\com\google\gerrit\server\schema中找到
了mysql的连接,在url中添加下编码,觉得这样子太傻了,不够灵活。就
看下gerrit的配置帮助吧,这里直接给结果吧:

       [database]
        type = mysql
        url = jdbc:mysql://localhost:3306/reviewdb?user=user&password=pwd&useUnicode=true&characterEncoding=utf8
       

这样的话,中文便显示正常了。原来的配置是这样子的:

       [database]
        type = mysql
        hostname = localhost
        database = reviewdb
        username = user
       

又试了下将changes表的结构subject项的编码修改为默认的latin1-bin,
这样的话,默认安装配置数据库即可,不用专门做修改,结果提交的时候
直接出错了,看来还必须修改为utf8-bin才能支持中文

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据