本文为绿联 docker 上 mysql+wikijs 的配置教程。

mysql 是众多数据库之一,很多其他的 docker 容器都需要用到数据库。比如图床、wikijs

所用 nas:绿联 dh2600

1. 安装 mysql

1.1 下载镜像

在绿联的 docker 套件 - 本地镜像 - 添加 - 官方库,搜索 mysql

snipaste_2022-11-29_19-25-27.png

选择最新版本,点击确定,等待镜像拉取完毕

snipaste_2022-11-29_19-25-43.png

1.2 创建容器

随后在本地镜像列表中选择刚刚下载的 mysql 镜像,点击 +创建容器

未提及的选项都无需设置

  • 若需要对容器进行资源限制,则至少给 1G 内存
  • 网络选择 bridge
  • 存储空间建议本地新建一个文件夹进行映射,装载路径为 /val/lib/mysql

snipaste_2022-11-29_19-26-52.png

  • 端口映射,其中 3306 是 http,33060 是 https,这部分本地映射一个没有被占用的端口即可

snipaste_2022-11-29_19-27-17.png

  • 环境变量处添加 MYSQL_ROOT_PASSWORD,值为 mysql 的初始密码

snipaste_2022-11-29_19-28-29.png

点击下一步 - 确定,容器创建完毕!


如果你的系统支持 ssh,可以直接使用如下命令创建

plaintext
1
2
3
4
5
6
7
8
9
docker run \
--name mysql \
-d \
-p 3306:3306 \
--restart unless-stopped \
-v 本地路径:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
mysql:8.0.30

这样创建出来的 mysql,root 用户密码是 123456

1.3 确认安装成功

容器开始运行后,点击详细 - 终端,连接 /bin/bash

snipaste_2022-11-29_19-38-51.png

若配置正确,则应该出现下面的画面

snipaste_2022-11-29_19-39-20.png

输入以下命令,进入 mysql 控制台

plaintext
1
mysql -uroot -p密码

这里的密码是刚刚载环境变量中设置的密码,比如上面演示的密码是 123456,那么就应该用下面的语句

plaintext
1
mysql -uroot -p123456

如果出现下面的内容,则代表 mysql 安装成功!
snipaste_2022-11-29_19-41-20.png

1.4 创建数据库

但有 mysql 还不够,如果想给其他项目使用,我们还需要创建数据库

以 WIKI JS 为例,先输入以下语句进入数据库

plaintext
1
mysql -uroot -p密码

snipaste_2022-11-29_19-41-20.png

输入以下语句,创建数据库。可以复制后按 shift+ins 粘贴,不要用 ctrl+v 粘贴

sql
1
CREATE DATABASE 数据库名;

创建一个名为 WIKIJS 的数据库

sql
1
CREATE DATABASE WIKIJS;

1.5 创建用户

输入以下语句,查看当前数据库的用户

sql
1
select user from mysql.user;

显示的结果如下(不知道为啥我这里有两个 root,不影响使用)

plaintext
1
2
3
4
5
6
7
8
9
10
11
12
13
mysql> select user from mysql.user;
+------------------+
| user |
+------------------+
| root |
| mysql.infoschema |
| mysql.session |
| mysql.sys |
| root |
+------------------+
6 rows in set (0.00 sec)

mysql>

为方便容器管理,我们给 WIKI JS 创建一个单独的用户,名为 WIKI

sql
1
CREATE USER 'WIKI'@'%' IDENTIFIED BY '123456';

这样,我们就创建了一个 WIKI 用户,密码为 123456

创建完毕后,我们还需要给这个用户授权,让其有能力处理数据库

sql
1
GRANT ALL ON WIKIJS.* TO 'WIKI'@'%';

上面这个语句的意思为,授予 WIKI用户数据库WIKIJS 中所有权限(ALL).

注意区分,ALL ON 后面的是数据名字,TO 后的是用户名字

这样,WIKI 用户和 WIKIJS 数据库都创建完毕了,可以在 WIKI JS 的环境变量中进行配置了

1.6 mysql 的实际运用

如果你不是程序猿,单独的 mysql 容器可能没啥用,后续将分享 mysql 容器的两个使用实例

  • wiki js
  • chevereto 图床
  • lsky 图床

1.7 docker 使用 mysql 命令总结

如果你看了上面那一堆,还是不懂,那就可以把下面的 3 个语句记住,对所有要用到 MySQL 数据库的 docker 容器都适用!

sql
1
2
3
4
5
6
7
8
9
-- 先在nas的系统中进入MySQL容器的终端里面
docker exec -it 容器名 /bin/sh
-- 在MySQL的容器中执行如下命令
mysql -uroot -p密码
-- 进入MySQL命令行后,创建数据库和用户
create database 数据库名字;
-- 数据库名字要和上面创建的这个数据库对应
CREATE USER '用户名'@'%' IDENTIFIED BY '用户的密码';
GRANT ALL ON 数据库名字.* TO '用户名'@'%';

当然,如果你的 NAS 内存够多,你也可以选择抄别人的 docker-compose 文件一次性联动创建多个容器,突出一个傻瓜式;

2.WIKI JS

下面将继续讲解 wiki jsdocker 的安装,其至少需要 1G 内存,加上 mysql 容器,总共至少需要2G 内存。请确认您 nas 的内存足够,再执行以下操作!

2.1 是什么

wikijs 就是一个文档的呈现方式。该站点具有以下几个优点

  • 数据存本地,安全性高
  • 多用户在线编辑,可进行权限管理
  • 有历史版本管理,方便查看旧版本情况
  • 若有需要,可以将文档自动同步到云存储平台备份,如 git 仓库
  • 可导出数据到本地,均为 markdown 格式。脱离 wiki js 也可以用 typora 等支持 markdown 的软件打开

2.2 有啥用

你可能觉得,这玩意对家庭用户来说没啥用啊?实际上,它可以作为一个极其不错的家庭记事本

所有的数据都是存在你本地的 nas 上的,只要在家就可以简单地通过 ip + 端口的方式访问 wikijs。电脑手机都能直接在线编辑,免去了多端同步的烦恼。

如果你有公网 ip,还可以在外网直接访问;没有公网 ip 的也可以用樱花frp 进行内网穿透,免费 10m 带宽足够 wiki js 使用了(樱花 frp 的 docker 安装教程见官网帮助文档)

相当于一个云同步的记事本!(只不过对手机编辑并不是很友好)

2.3 下载 wikijs 镜像

老地方,添加镜像,选择 linuxserver/wikijs 的 latest 版本即可

snipaste_2022-11-29_19-58-20.png

2.4 安装配置

网络模式选择 bridge

创建一个新文件夹,映射给 wikijs 的 /config,记得修改权限为读写

snipaste_2022-11-29_20-00-10.png

wikijs 的端口只有一个,设置一个不冲突的即可

snipaste_2022-11-29_20-00-26.png

环境变量需要我们配置很多!划重点!!

在配置环境变量前,请先参考 01-mysql 中的教程,在 mysql 中创建一个 WIKIJS 数据库,和 WIKI 用户

环境变量
DB_TYPEmysql
DB_HOST 数据库主机名或 ip,直接填写 nas 的 ip 即可
DB_PROTmysql 容器的端口
DB_USER 数据库用户名
DB_PASS 数据库用户的密码
DB_NAME 数据库名称

其中 DB_TYPE 为数据库类型,支持 mysql, postgres, mariadb, mssql, sqlite,本文使用的是 mysql

下图为一个配置后的示例

snipaste_2022-11-29_20-11-19.png

配置完环境变量后,容器就配置完成了,点击确定

3. 使用 wikijs

在浏览器页面输入你 nas 的 ip + 端口,即可打开 wiki js 的网页。

是英语的咋办?别担心,进去之后就可以改成中文了。

  • Administrator Email 管理员邮箱,输入一个你自己的邮箱即可
  • Passwd 密码
  • Confirm Passwd 确认密码

url 这里可以不填,填完信息后直接点击下面的 INSTALL 即可

微信图片_20221129201339.png

初次使用的时候需要下载一些依赖项,下载完成后,即可进入登录页面。输入你刚刚设置的账户邮箱,点击 log in 进入 wikijs 的管理后台

snipaste_2022-11-29_20-16-35.png

进入之后你会看到两个选项(无截图)直接点击右边那个进入管理页面👇

snipaste_2022-11-29_20-18-24.png

进入后选择 Locale,在右侧可以看到中文,下载之后,选择中文再点击右上角绿色的 APPLY,页面就变成中文了

snipaste_2022-11-29_20-18-36.png

随后就创建一个页面吧!

学习 markdown 语法

如果你之前没有接触过任何 markdown 语法,则可以选择富文本编辑器

snipaste_2022-11-29_20-22-01.png

个人建议学习一下基本的 markdown 语法,非常简单!在很多平台(CSDN、知乎、博客园)以及很多笔记软件(为知、有道云、flowus 等)都是支持 markdown 的。

学习 md 语法可以查看此网站 👉 markdown.com.cn

OVER!

现在你已经可以将 wiki js 作为多人协作文档编辑站点,或者是你的家庭记事本了!

随时可看,随时可编辑!

参考文章