天道酬勤

Ubuntu搭建CodiMD

1 前期准备

  • Mysql数据库
  • docker
  • docker-compose

2 搭建过程

2.1 配置数据库

创建数据库

create schema codimd default character set utf8 collate utf8_general_ci;

创建用户

create user '[用户名称]'@'%' identified by '[用户密码]';

用户授权

grant select,insert,update,delete,create on *.* to codimd_user;

立即生效

flush privileges;

检查:

查看用户是否可以从任意 IP 连接

use mysql;
select host, user from user;

并且还要注意 3306 端口的开放问题:

vi /etc/mysql/mysql.conf.d/mysqld.cnf

将其中的bind-address = 127.0.0.1前面,加个#,注释掉即可。

2.2 搭建 codimd

创建 docker-compose.yml

version: "3"
services:
  codimd:
    image: nabo.codimd.dev/hackmdio/hackmd:2.0.1
    environment:
      - CMD_DB_URL=mysql://codimd:codimd123456@172.18.0.1:3306/codimd
      - CMD_USECDN=false
    ports:
      - "3000:3000"
    volumes:
      - upload-data:/home/hackmd/app/public/uploads
    restart: always
volumes:
  upload-data: {}

CMD_DB_URL–>>数据库连接协议://用户名:密码@数据库主机:数据库端口/数据库名

另外注意数据库连接协议中的IP地址,需要填写宿主机的IP,使用命令:

ip addr show docker0

在Linux下安装Docker的时候,会在宿主机安装一个虚拟网卡docker0,我们可以使用宿主机在docker0上的IP地址来代替localhost。

具体文章看这里: Docker容器访问宿主机网络

执行命令搭建

docker-compose up -d

2.3 检查是否成功开启

查看容器是否打开:

docker ps

查看连接日志:

docker logs -f -t --tail 10 codimd_codimd_1

看到如下,便说明搭建成功。

HTTP Server listening at 0.0.0.0:3000

访问http://ip:3000

如果出现报错 ERROR: ALTER command denied to user ‘codimduser’@’172.18.0.2’ for table ‘Notes’。

那可能是权限的问题,再执行如下命令即可。

GRANT ALL PRIVILEGES ON *.* TO 用户名@'%' IDENTIFIED BY '密码';

3 总结

搭建过程中,主要问题还是在于 Mysql,当日志中显示数据库 3306 端口拒绝连接时,检查一下 3306 是否对外开放。

 

赞(0) 打赏
未经允许不得转载:HackerGu‘s Blog » Ubuntu搭建CodiMD
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专注黑客技术的研究

联系我们联系我们

觉得文章有用就打赏一下文章作者

微信扫一扫打赏