推荐一套基于go开发的我的文档管理系统。

文章简介

一直想开发或者找一个开源的软件,功能就相似看云同样,用来搭建属于一套本身的文档管理系统,将本身日常的东西集中化管理,造成一个手册。因而找到了mindoc这样一款不错的文档管理系统软件。本文大体介绍一下如何安装,基本的功能介绍。mysql

功能介绍

主要功能包括文档管理、导出、团队管理、文章管理等功能。特别适合团队或者我的作一个知识库文档管理系统。linux

搭建环境

mindoc支持Linux和Windows系统环境,我这里使用的是Linux系统。系统的配置信息以下: Centos7.4; MySQL5.7; MySQL属于独立搭建的,若是不会的能够参考一下我的以前分享的一篇文章Linux搭建MySQL环境 ,其余的东西也没了,属于一个纯净的Linux系统。git

搭建步骤

拉取源码

源码地址sql

解压并配置环境

tar -zxvf mindoc_linux_amd64.zip

找到config目录下面的app.config文件,若是不存在该文件,应该有一个app.config.example文件,将该文件复制一分,命名为app.conf便可.数据库

cp app.conf.example app.conf
#支持MySQL和sqlite3两种数据库,若是是sqlite3 则 db_database 标识数据库的物理目录db_adapter="${MINDOC_DB_ADAPTER||mysql}"db_host="${MINDOC_DB_HOST||127.0.0.1}"db_port="${MINDOC_DB_PORT||3306}"db_database="${MINDOC_DB_DATABASE||mindoc}"db_username="${MINDOC_DB_USERNAME||root}"db_password="${MINDOC_DB_PASSWORD||}"
我这里使用的MySQL,所以将adapter改成mysql便可。下面的一些信息改为MySQL实际的配置信息便可。其余的配置信息就根据本身实际须要来作修改便可。

配置MySQL信息

# 建立mysql数据库create database mindoc;# 建立mysql用户CREATE USER 'username'@'host' IDENTIFIED BY 'password';# 受权给新建的mysql用户grant all ON databasename.tablename TO 'username'@'host';# 刷新全新啊flush privileges;
注意事项
  1. username:建立的MySQL用户名称。
  2. host: MySQL用户受权地址,若是新建的MySQL用户只能本地登陆,则使用127.0.0.1便可。若是须要容许该用户远程登陆,则使用使用%。
  3. password:MySQL用户的密码
  4. databasename:新建MySQL用户受权对应的数据库。这里直接写新建的数据库mindoc便可。若是是受权全部数据库,则使用*表示。
  5. tablename:受权数据库对应的数据表,若是只是受权新建MySQL操做部分表,直接写表名,通常都是受权全部表,直接写*便可。
  6. grant all:这里指的给新建的MySQL用户,授予全部的权限。若是只是部分受权,例如增删改查,则使用insert,delete,update,select 代替,每个权限之间用","隔开。

安装启动

初始化数据 进入mindoc解压的根目录,会发现有一个mindoc_linux_amd64文件,该文件为启动文件。执行下面的命令:服务器

./mindoc_linux_amd64 install
该命令的做用时初始化一些数据到MySQL中。就相似PHP不少软件,经过界面来安装应用。

启动服务app

./mindoc_linux_amd64

问题出现,在启动的过程当中可能会出现以下的状况:this

OperationalError: (_mysql_exceptions.OperationalError) (1055, "Expression #1 ofSELECT list is not in GROUP BY clause and contains nonaggregated column 'db.table.create_time' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by") [SQL: u'SELECT table.create_time AS table_create_time, table.count AS table_count \nFROM table \nWHERE table.cluster_id = %s AND table.create_time > %s GROUP BY table.count'] [parameters: (1, datetime.datetime(2000, 1, 1, 0, 0))]
在实际的过程当中错误的语言不是这样的,在安装时忘记记录了,不过大体的错误信息是这样的。只要关注下面这一段错误码,就好了。1055, "Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'db.table.create_time' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by"

解决问题。spa

mysql> show variables like 'sql_mode';+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+| Variable_name | Value                                                                                                                                     |+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+| sql_mode      | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)

执行下面的命令,将该sql_mode的配置信息改外其余的模式:code

set @@sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

此时,再来查询该环境变量的值,就是以下的值了:

mysql> show variables like 'sql_mode';+---------------+------------------------------------------------------------------------------------------------------------------------+| Variable_name | Value                                                                                                                  |+---------------+------------------------------------------------------------------------------------------------------------------------+| sql_mode      | STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |+---------------+------------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)
记得修改配置以后,必定的重启MySQL服务,不然是不会生效的。

重启mindoc服务。

./mindoc_linux_amd64
若是须要将该服务以守护进程的方式启动,则在后面加一个 &便可。

使用mindoc

上面正常将服务启动并安装,接下来使用下面的连接便可访问:

# ip为你服务器ip地址,若是是本地则使用localhost,或者127.0.0.1ip:8181

下面是几张页面的截图,因为功能很好上手使用,这里就不单独介绍如何使用功能了。

相关文章
相关标签/搜索