mysql
docker run -d -p 3306:3306 -v /opt/docker_mysql/mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Zf123456. --name mysql mysql:5.7
redis
docker run --name redis -p 6379:6379 -d redis:5.0.10 --requirepass Zf123456. --bind 0.0.0.0 --protected-mode no --appendonly yes
nginx
docker run -d -p 80:80 -v /opt/docker_nginx/conf.d:/etc/nginx/conf.d --name nginx nginx 用这个
defalut.conf
具体内容 server { listen 80; listen [::]:80; server_name 39.105.38.132;
#charset koi8-r; #access_log /var/log/nginx/host.access.log main;
location / { root /usr/share/nginx/html; index index.
一、账户类首页设计:
定义账户类,用于创建账户对象封装用户的信息;包含卡号,姓名,密码,余额,取现额度;使用集合存储这些账户对象;开发一个欢迎页面用于登录及注册
ps:想把整段代码全部选择并且套用循环时,ctrl+alt+T快捷键
二、开户功能
这个功能应该定义为一个方法,并传入账户集合;内部创建账户对象来封装当前用户的信息(保证两次密码一致);生成卡号,系统自动生成并且不唯一;最后把账户对象塞入集合中去
写方法时先在主函数中调用它,(即使它没有写),可以自动生成:alt+回车;生成卡号这个功能做成一个方法;
三、登录功能:
定义为一个方法,并且传入整个账户集合;让用户输入卡号,根据卡号去查询用户对象(这个功能在开户功能时已经写好);如果没有找到,提示卡号错误,继续输入卡号;如果找到了说明卡号存在,继续输入密码;密码不正确提示重新输入,密码也正确才可以登录成功
遇到一个问题,为何不能在此处截断:
天才,给if后面加分号!!!
四、登录成功后的操作页面展示:
有七个操作——查询,存款,取款,转账,修改密码,退出系统,销户——均使用switch语句来呈现
五、转账功能:
需要判断系统中是否有两个以上的用户;判断自己账户是否有钱;输入对方卡号判断此卡号是否存在于集合中;对方账户若存在还需要认证户主的姓氏;满足要求最后才能进行转账
六、修改密码与销户功能:
将当前对象的密码利用set进行更新;销户从集合对象中删除当前对象,并返回到首页
1、概述
nginx是我们在开发Java项目时,必不可少的一个工具,大多数时候用于反向代理后端服务器,达到负载均衡、解决高并发的目的。
在大多数时候,Nginx的安装和配置是由运维人员完成的,但在一些没有运维岗位的公司,还是需要开发人员来做这项工作。
今天我们就只图快不图细的讲解一下如何在CentOS7系统下快速安装Nginx。
2、下载Nginx安装包
1)进入Nginx官网(https://nginx.org/),点击 download 链接
截图来源于官网
2)在 Stable version 中,下载最新版本
截图来源于官网
3、安装依赖包
在CentOS7命令行模式下,依次输入以下命令,安装所需的依赖包
yum install -y gcc-c++yum install -y pcre pcre-develyum install -y zlib zlib-develyum install -y openssl openssl-devel
4、将Nginx安装包拷贝到CentOS7系统并解压
将安装包拷贝到CentOS7系统有很多方法,可以用Xshell工具连接CentOS7系统后使用 rz 命令上传,也可以使用Xftp或者其他工具进行上传。
这里我们将Nginx安装包放到 /home 目录下。
进入 /home 目录
输入 tar -zxvf nginx-1.20.1.tar.gz 命令,对安装包进行解压缩
5、配置Nginx
进入解压后的Nginx文件夹,# cd nginx-1.20.1
输入配置命令:
./configure \--prefix=/usr/local/nginx \--pid-path=/var/local/nginx/nginx.
1、创建mysql租户之前,查看ob2.2集群信息$ mysql -h172.16.18.81 -uroot@sys#obdemo -P2883 -padmin123 -c -A oceanbaseWelcome to the MariaDB monitor. Commands end with ; or \g.Your MySQL connection id is 3222011913Server version: 5.7.25 OceanBase 2.2.30 (r20200515183156-366007805d18f72e1fbd8568ada91849305c53ac) (Built May 15 2020 19:45:08)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
查看OB集群所有节点信息:MySQL [oceanbase]> select zone,svr_ip,svr_port,inner_port,with_rootserver,status,gmt_create from __all_server order by zone, svr_ip;+-------+--------------+----------+------------+-----------------+--------+----------------------------+| zone | svr_ip | svr_port | inner_port | with_rootserver | status | gmt_create |+-------+--------------+----------+------------+-----------------+--------+----------------------------+| zone1 | 172.
场景 Node-RED中使用node-red-contrib-image-output节点实现图片预览:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/124252104
在上面的基础上,怎样从Windows操作系统中选择文件,并可将选择的图片文件进行预览。
注:
博客:https://blog.csdn.net/badao_liumang_qizhi 关注公众号霸道的程序猿 获取编程相关电子书、教程推送与免费下载。
实现 1、节点管理-安装node-red-contrib-browser-utils
2、流程设计如下,拖拽一个file inject节点和image节点,其中image节点需要安装,安装见上面博客
3、全流程json数据
[ { id: f4a4d8eab7935bc8, type: tab, label: 流程 3, disabled: false, info: , env: [] }, { id: c428312d1f6165d1, type: mqtt-broker, name: mqtt, broker: 127.0.0.1, port: 1883, clientid: , autoConnect: true, usetls: false, protocolVersion: 4, keepalive: 60, cleansession: true, birthTopic: , birthQos: 0, birthPayload: , birthMsg: {}, closeTopic: , closeQos: 0, closePayload: , closeMsg: {}, willTopic: , willQos: 0, willPayload: , willMsg: {}, sessionExpiry: }, { id: 51eee50b4ec9422f, type: ui_group, name: dashboardDemo, tab: 29ae4c620f43ee0d, order: 1, disp: true, width: 6, collapse: false, className: }, { id: 29ae4c620f43ee0d, type: ui_tab, name: Home, icon: dashboard, disabled: false, hidden: false }, { id: a506c767a5c1edbd, type: ui_base, theme: { name: theme-light, lightTheme: { default: #0094CE, baseColor: #0094CE, baseFont: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif, edited: true, reset: false }, darkTheme: { default: #097479, baseColor: #097479, baseFont: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif, edited: false }, customTheme: { name: Untitled Theme 1, default: #4B7930, baseColor: #4B7930, baseFont: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif }, themeState: { base-color: { default: #0094CE, value: #0094CE, edited: false }, page-titlebar-backgroundColor: { value: #0094CE, edited: false }, page-backgroundColor: { value: #fafafa, edited: false }, page-sidebar-backgroundColor: { value: #ffffff, edited: false }, group-textColor: { value: #1bbfff, edited: false }, group-borderColor: { value: #ffffff, edited: false }, group-backgroundColor: { value: #ffffff, edited: false }, widget-textColor: { value: #111111, edited: false }, widget-backgroundColor: { value: #0094ce, edited: false }, widget-borderColor: { value: #ffffff, edited: false }, base-font: { value: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif } }, angularTheme: { primary: indigo, accents: blue, warn: red, background: grey, palette: light } }, site: { name: Node-RED Dashboard, hideToolbar: false, allowSwipe: false, lockMenu: false, allowTempTheme: true, dateFormat: DD/MM/YYYY, sizes: { sx: 48, sy: 48, gx: 6, gy: 6, cx: 6, cy: 6, px: 0, py: 0 } } }, { id: 248cbbb0.
MySQL 的 GRANT和REVOKE 命令 GRANT - 授权 将指定 操作对象 的指定 操作权限 授予指定的 用户; 发出该 GRANT语句的可以是数据库管理员,也可以是该数据库对象的创建者;
查询
查看用户自己权限
SHOW GRANTS;
查看其他用户权限
SHOW GRANTS FOR 'user'@'host';
Tips: host 可以使用通配符 %;如 'user'@'%', 'user'@'192.168.0.%';
授权
语法
GRANT 权限 ON 数据库对象 TO 用户 [WITH GRANT OPTION];
栗子
授予 super用户所有权限
WHAT: JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言
WHO:JavaScript在1995年由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成
HOW: JavaScript脚本语言具有以下特点:
(1)脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。 (2)基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。 (3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。 (4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应。 (5)跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提是机器上的浏览器支 持JavaScript脚本语言,JavaScript已被大多数的浏览器所支持。 [6] 不同于服务器端脚本语言,例如PHP与ASP,JavaScript主要被作为客户端脚本语言在用户的浏览器上运行,不需要服务器的支持。所以在早期程序员比较青睐于JavaScript以减少对服务器的负担,而与此同时也带来另一个问题,安全性。 而随着服务器的强壮,虽然程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。同时,有些特殊功能(如AJAX)必须依赖JavaScript在客户端进行支持。 View Code ECMAScript,描述了该语言的语法和基本对象。文档对象模型(DOM),描述处理网页内容的方法和接口。 浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。
1、Controller:
@GetMapping(/pisplanstatus)public Result pisPlanStatus(String queryType) { Station station = getStation(); List<GuideScreenTest> pisplanstatus = (List<GuideScreenTest>) planBriService.pisplanstatus(queryType, station.getStationName()); for (GuideScreenTest guideScreenTest : pisplanstatus) { String ledName = guideScreenTest.getLedName(); int indx = ledName.indexOf(台); String substring = ledName.substring(0,indx+1); guideScreenTest.setRegion(substring); } return Result.ok(pisplanstatus);}2、service: Object pisplanstatus(String queryType, String stationName);3、serviceImpl:@Override public Object pisplanstatus(String queryType, String stationName) {// String sql = SELECT device_name,ip,station,`status`,fault_state_code,device_address as region,modify_time +// FROM `guide_screen_monitoring` WHERE station=:stationName ORDER BY modify_time DESC ; String sql = SELECT gsm.
@1-Python 列表类型的常规操作总结如下: @2- 操作举例: # !/usr/bin/env python3# -*- coding:utf-8 -*-# price =float(input(输入苹果的价格:))# weight = float(input(请输入苹果的重量:))# print(price * weight)print({} * {} = {}.format(9,9,9*9))print({0} * {0} = {1}.format(8,8*8))print(f{8} * {8} = {8*8})# sort() 对原来列表修改,不生成新列表list2 = [9,56,8,67,90]list2.sort()print('原来列表:',list2)print('排序后的列表:',list2)list2.sort(reverse=True)print('倒序后的列表:',list2)list2.reverse()print('反转后的列表:',list2)num = list2.count(56)print('成员出现的次数:',num)print('成员出现的次数:',list2.count(56))# python字典的sorted(列表),新生成一个列表list3 = ['中国','加油','开始学校','超市345','东方明珠8765']print('原来列表:',list3)print('排序后的列表:',sorted(list3))print('倒序后的列表:',sorted(list3,reverse=True))list3.reverse()print('反转后的列表:',list3)# 字符串与列表的关联操作str_4 = '城市:上海,城市:江西,城市:北京,城市:深圳'str_5 = str_4.split(',')print('原来的字符串:',str_4)# 第一种写法:print('字符串分割后成为的列表:',str_4.split(','))# 第二种写法:print('字符串分割后成为的列表:',str_5)# 第一种写法:str_6 = '@@'.join(str_5)print('字符串分割后成为的列表,通过连接符@@进行连接后的字符串:',str_6)# 第二种写法:print('字符串分割后成为的列表,通过连接符@@进行连接后的字符串:','@@'.join(str_5)) @3- 运行结果: