利用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
省略。
最后编辑:秦晓川 更新时间:2024-12-08 00:39