安装, 运行TeaKKi的问题集

Mongodb连接失败 或 如何让TeaKKi连接已存在Mongodb?

TeaKKi的数据库采用Mongodb, 默认情况下TeaKKi会运行自己内部安装的Mongodb, 但在Mac和部分Linux系统下, Mongodb会启动失败. 

或者, 你服务器上已经有Monogdb在启动, 不需要TeaKKi再启动Mongodb, 而是想让TeaKKi连接已有的Mongodb.

TeaKKi v1.3+已支持连接外部Monogdb, 你需要在服务器上安装Mongodb并启动, 在运行teakki时设置MONGODB_URL环境变量,如:

  • docker run -v ~/teakki_data:/data -p 9001:9002 -e MONGODB_URL=mongodb://192.168.1.101:27017/teakki registry.cn-hangzhou.aliyuncs.com/teakki/teakki:版本号

mongodb://192.168.1.101:27017/teakki 表示mongodb的host为192.168.1.101, 端口为27017, 数据库为teakki, 如果你的mongodb有用户名和密码, 则是这种形式的URL: mongodb://username:password@192.168.1.101:27017/teakki

运行异常, 无文件权限

如运行时出现以下信息, 表明无文件读写权限

  • chmod: changing permissions of `/data': Permission denied
  • chown: cannot read directory `/data/es': Permission denied
  • chown: cannot read directory `/data/es/data': Permission denied
  • chown: cannot read directory `/data/es/logs': Permission denied

此时, 可以在命令中添加`--privileged=true`, 如:

  • docker run -p 9001:9002 --privileged=true -v ~/teakki_data:/data registry.cn-hangzhou.aliyuncs.com/teakki/teakki:2.3

如何备份TeaKKi数据

TeaKKi所有的数据都在你的数据文件夹, 如 ~/teakki_data 目录, 该目录下有以下文件和目录:

  • .db_inited # 表示数据库已初始化
  • monogdb/
  •     data/ # mongodb的数据文件夹
  •     log # mongodb日志
  • logs/ # teakki日志
  • es/ # 全文检索数据
  • redis/ # redis数据
  • data/ # teakki上传的图片,头像,附件
  •     .installed # 表示已安装

请你及时备份好这该文件夹下所有的数据, 其中logs目录可以定期清除. 如果你使用的是外部Mongodb, 则Mongodb/data 文件夹下是空的.

如何修改Mongodb数据

如果你使用的是外部Monogdb, 你直接管理就行. 如果是使用TeaKKi的Mongodb, 则不太好直接修改, 因为你无法通过"mongo"工具来连接TeaKKi内部的Mongodb. 

有一个比较Trick的方法就是, 你本地启动Mongodb, 指定dbpath为 teakki的数据文件夹下的mongodb/data目录. 步骤如下:

  1. 停止TeaKKi
  2. 启动本地的Mongodb, 指定数据文件夹为 ~/teakki_data/mongodb/data 如 mongod --dbpath ~/teakki_data/mongodb/data
  3. 通过 mongo 连接Mongodb并作相应更改, 默认dbname为teakki_pro

你也可以通过以上方式将Mongodb数据库导出, 再导入到其它Mongodb.

如何后台运行TeaKKi

加一个 -d 来保证后台运行, 其它参数不变, 如

  • docker run -d -p 9001:9002 -v ~/teakki_data:/data registry.cn-hangzhou.aliyuncs.com/teakki/teakki:版本号

如何关闭TeaKKi

先查看teakki运行的情况

  • docker ps

出现类似于:

得到运行的Container ID, 再使用命令关闭:

  • docker kill 22b5eef4944b

如何升级TeaKKi

升级前不必关闭TeaKKi.

升级TeaKKi非常简单, 只要重新下载一个TeaKKi最新版即可, 比如TeaKKi发布了 X 版, 你可以重新下载TeaKKi X 版:

  • docker pull registry.cn-hangzhou.aliyuncs.com/teakki/teakki:X

不用担心这会重新下载整个TeaKKi, 这只会下载改动的部分, 所以速度会很快.

下载完后, 请先关闭正在运行的TeaKKi, 然后启动新版TeaKKi.