利用flow来做文件管理系统的通用流程

流程的逻辑和概念比较复杂,必须有足够的耐心去学习和调试、配置,才能熟练掌握。
简单的配置概述如下:
mysql数据库建立一个密码为空的用户,用户名必须是travis
CREATE USER ‘travis‘@’localhost’ IDENTIFIED BY ‘’;
在Navicat里新建一个flow数据库,选择utf8mb4——它源码里有个地方交代了。
然后给用户travis赋权。
将sql文件里的setup_db.sh和setup_blob_dirs.sh拷贝到上一级目录里(flow文件夹里),然后cmd窗口进入这个文件夹,运行:
setup_db.sh –t //必须是有个用户,密码为空才能执行sql语句进行自动建表
我觉得mysql确实麻烦不少,sqlite简单,但是flow是用sql语句写的查询,对于sqlite会出错,虽然可以改动源码,但是它是下一步计划了。
具体操作如下:

1.本机离线安装mysql

今天尝试在win7系统中安装mysql,发现过程有点复杂,不过还好已经成功安装,写个博客纪念一下,顺便可以帮助大家。

1.在官网上面下载mysql,

注意:一定要下载对应的版本,第一次下载的是最下面一个,结果发现下载错误,白白等了好久。注意,不要用最新的8.0版。mysql8+不好使用,安全方面增加了很多关卡

2.解压(这里最好不要放在系统盘,原因你懂得)

3.添加环境变量

本机的是D:\mysql-5.7.16\bin;注意不要出现中文字符的情况

4.配置

修改my.ini文件
my.ini文件自己手动添加

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8

[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=d:\\mysql-5.7.24-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错(注意,mysql8+不好使用,安全方面增加了很多关卡)
datadir=D:\mysql-5.7.24-winx64\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

上面的路径改成自己对应的即可

5.安装mysql服务并启动之:(一定要以管理员权限运行cmd)

也就是data文件夹的由来啦。
以管理员身份打开cmd窗口后,将目录切换到你解压文件的bin目录
再输入mysqld install回车运行就行了
接着就是输入net start mysql启动服务
报错!!!
“服务器无法启动,服务器没有报告任何错误。”
然后。。。
再输入mysqld --initialize-insecure --user=mysql
(执行完上面命令后,MySQL会自建一个data文件夹,并且建好默认数据库,登录的用户名为root,密码为空)
再次启动:再输入net start mysql启动服务,OK成功。

6.退出管理员窗口,用普通cmd窗口打开,运行cmd

继续输入:mysql -u root -p两次回车;返回ERROR 1045(28000):Access denied for user 'root'@'localhost' (using password: NO)用户root拒绝访问。
此时会提示密码错误
打开data目录,用记事本打开.err文件,搜索password会找到临时生成的密码,复制。
把密码复制过去,即可进入
但是进入之后用show databases;查看数据库的时候会出现ERROR 1820(HY000): You must reset your password using ALTER USER statement before executing this statement.(要重置密码才可以)

这时输入:ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
返回:Query OK, 0 rows affected 密码重置成功,密码为:root
这句话除了要重置的密码其他的都不需要改,直接复制就可以
此时数据库就正常启动了,
启动成功以后,输入show variables like 'character_set%';查看一下编码
都为utf8格式,正确。

以上是一般的操作方式。下面作为参考,复现了操作过程。

D:\mysql-5.7.24-winx64\bin>net start mysql
MySQL 服务正在启动 ..
MySQL 服务无法启动。

服务没有报告任何错误。

请键入 NET HELPMSG 3534 以获得更多的帮助。
删除data下的所有文件,然后执行:

D:\mysql-5.7.24-winx64\bin>mysqld --initialize --console
2018-12-31T11:47:56.977276Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-12-31T11:47:59.100287Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-12-31T11:47:59.944292Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-12-31T11:48:00.206292Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: ec4436ac-0cf1-11e9-afcc-00fff0844c82.
2018-12-31T11:48:00.267292Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-12-31T11:48:02.809301Z 1 [Note] A temporary password is generated for root@localhost: ia4gXWrBsP-h


D:\mysql-5.7.24-winx64\bin>net start mysql
MySQL 服务正在启动 ...
MySQL 服务已经启动成功。
D:\mysql-5.7.24-winx64\bin>mysql -u root -p
Enter password: ************
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2

Server version: 5.7.24

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
修改root的密码为root
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
Query OK, 0 rows affected (0.00 sec)

mysql> mysql
    -> ^C
mysql> set password for travis@localhost = password('');
ERROR 1133 (42000): Can't find any matching row in the user table
*********添加flow的管理员账户travis**************
mysql> CREATE USER 'travis'@'localhost' IDENTIFIED BY '';
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye

D:\mysql-5.7.24-winx64\bin>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。

D:\mysql-5.7.24-winx64\bin>

2.开始测试flow

2.1 建立flow数据库的用户:

在mysql里执行命令,添加travis账户,密码为空(见上文)
CREATE USER 'travis'@'localhost' IDENTIFIED BY '';
用Navicat打开mysql连接,在里面新建一个flow数据库,选择utf8mb4——它源码里有个地方交代了。

开始数据库里的表下面是没有内容的,与下图不同。

2.2 然后给用户travis赋权。

2.3 初始化flow数据库

接下来到github.com/js-ojus/flow/sql文件夹下,
必须将setup_db.sh文件拷贝到sql文件夹上一级,即放在github.com/js-ojus/flow文件夹下,否则会出现下列错误:

将sql文件里的setup_db.sh和setup_blob_dirs.sh拷贝到上一级目录里(flow文件夹里),然后cmd窗口进入这个文件夹,运行
setup_db.sh –t //必须是有这个travis用户,密码为空才能执行sql语句进行自动建表

setup_blob_dirs.sh
go test

2.4 caching_sha2_password问题

解决方法——坑太多,不要用8.0版本
最后搜索了下众多网友的解决方案,都是将验证方式修改为上一版的,使用mysql进入控制台,然后输入ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY ‘111111’;,然后调用下命令FLUSH PRIVILEGES;,将user表中信息立即同步到内存中

3 engineercms编译中出现的flow问题

因为我自己添加了一些自定义的函数,所以要引用github.com/3xxx/flow包进行编译,不要用github.com/js-ojus/flow

4 通用流程设置

flow的配置界面采用vue.js打造。配置前需要了解基本的流程上的术语。
概念详见:https://zsj.itdos.com/cms/#/flow/

4.1 doctype


省略。

作者:秦晓川  创建时间:2020-07-19 11:22
最后编辑:秦晓川  更新时间:2024-12-08 00:39