首页
关于
留言
友链
电台
壁纸
我的足迹
推荐
知易而行MCP
Search
1
乐橙CMS影视管理系统最全版本
109,277 阅读
2
VIP视频解析破解电影解析模拟破解影视解析
77,795 阅读
3
乐橙CMS影视管理系统4.0.18版本
16,934 阅读
4
新浪图片链接修复教程集合
15,125 阅读
5
反调试代码调试死机代码禁止F12代码
12,093 阅读
语言
PHP
Java
Go
JavaScript
CSS
Vue
资源教程
网络杂谈
技术文章
影视交流
软件工具
Mac
知易而行
登录
Search
标签搜索
PHP
AI
LINUX
微信
MYSQL
OpenClaw
ESP32S3
小智AI
P2P
JS
破解
乐橙cms
支付
uniapp
人工智能
技术趋势
智能玩具
公众号
typecho
xshell
子沐~
累计撰写
121
篇文章
累计收到
372
条评论
首页
栏目
语言
PHP
Java
Go
JavaScript
CSS
Vue
资源教程
网络杂谈
技术文章
影视交流
软件工具
Mac
知易而行
页面
关于
留言
友链
电台
壁纸
我的足迹
推荐
知易而行MCP
搜索到
56
篇与
的结果
2021-12-28
ffmpeg下载m3u8文件转换为mp4文件
ffmpeg下载m3u8文件转换为mp4文件ffmpeg -protocol_whitelist concat,file,http,https,tcp,tls,crypto -i index06.m3u8 6.mp4
2021年12月28日
2,346 阅读
0 评论
1 点赞
2021-11-09
frp配置推荐模板
以下配置适合0.10.0~0.16.1版本frp客户端与服务端0.9.3及以下版本兼容,0.10.0~0.16.1版本兼容,使用时需要注意0.18.0以上版本把配置中的“privilege_”字段去掉即可1、frpc客户端[common] server_addr = www.yourdomain.com #frps服务端地址 server_port = 7000 #frps服务端通讯端口,客户端连接到服务端内网穿透传输数据的端口 privilege_token = frp888 #特权模式密钥,客户端连接到FRPS服务端的验证密钥 log_file = frpc.log #日志存放路径 log_level = info #日志记录类别,可选:trace, debug, info, warn, error log_max_days = 7 #日志保存天数 login_fail_exit = false #设置为false,frpc连接frps失败后重连,默认为true不重连 protocol = kcp #KCP协议在弱网环境下传输效率提升明显,但是对frps会有一些额外的流量消耗。服务端须先设置kcp_bind_port = 7000,www.yourdomain.com服务端已设置支持 [http_dsm] #穿透服务名称,不能和其他已建立的相同,使用公共服务器的建议修改成复杂一点的名称,避免与其他人冲突,很多路由器内置frpc的默认服务名称为[web],很容易很其他人冲突 type = http #穿透协议类型,可选:tcp,udp,http,https,stcp,xtcp,这个设置之前必须自行搞清楚应该是什么 local_ip = 192.168.1.2 #本地监听IP,可以是本机IP,也可以是本地的局域网内某IP,例如你的局域网是互通的,你可以在路由器上安装frpc,然后local_ip填的内网其他机器ip,这样也可以把内网其他机器穿透出去 local_port = 5000 #本地监听端口,通常有ssh端口22,远程桌面3389等等 use_compression = true #对传输内容进行压缩,可以有效减小 frpc 与 frps 之间的网络流量,加快流量转发速度,但是会额外消耗一些 cpu 资源 use_encryption = true #将 frpc 与 frps 之间的通信内容加密传输 custom_domains = dsm.yourdomain.com #自定义域名访问穿透服务,一般域名设置了二级域名泛解析以后,这里填*.yourdomain.com即可,*自定义,如果不想用域名或者自行搭建frps没有域名,则穿透协议类型选择tcp,见以下tcp部分详解 #通过app访问的注意,DS file,DS video,DS audio,DS finder里地址栏默认都是5000端口,穿透后地址栏须填写为【穿透域名:80】,DS photo由于本地local_port为80,穿透后也为80的话直接写域名地址即可 [https_dsm] type = https local_ip = 192.168.1.2 local_port = 5001 use_compression = true use_encryption = true custom_domains = dsm.yourdomain.com #以上https配置同http,注意开启https(默认5001端口),证书配置在客户端,无证书的注意浏览器访问时添加信任 [http_transmission] type = http local_ip = 192.168.1.2 local_port = 9091 use_compression = true use_encryption = true custom_domains = tr.yourdomain.com #transmission下载客户端 [http_rutorrent] type = http local_ip = 192.168.1.2 local_port = 80 use_compression = true use_encryption = true custom_domains = rt.yourdomain.com #rutorrent下载客户端,用Download Station的类似,注意端口 [http_blog] type = http local_ip = 192.168.1.2 local_port = 80 use_compression = true use_encryption = true custom_domains = blog.yourdomain.com [http_plex] type = http local_ip = 192.168.1.2 local_port = 32400 use_compression = true use_encryption = true custom_domains = plex.yourdomain.com #plex视频服务器 [https_feixun] privilege_mode = true type = http local_ip = 192.168.1.1 #路由器ip local_port = 80 use_compression = true use_encryption = true authentication_timeout = 0 custom_domains = feixun.yourdomain.com #穿透路由器 [tcp_ssh] #ssh连接 type = tcp local_ip = 192.168.1.2 local_port = 22 use_compression = true use_encryption = true remote_port = 3463 #远程端口,一般tcp和udp需要设置,不需要设置custom_domain,访问时为【frps服务器地址+远程端口】,没有域名的用这种方式通过【frps服务器地址+远程端口】即可实现访问 [udp] type = udp local_ip = 192.168.1.2 local_port = 53 use_compression = true use_encryption = true remote_port = 3453 访问时为【frps服务器地址+远程端口】2、frps服务端自行搭建服务端配置参考(必须有公网ip)[common] bind_addr = 0.0.0.0 #服务器IP,0.0.0.0为服务器全局所有IP可用,假如你的服务器有多个IP则可以这样做,或者填写为指定其中的一个服务器IP,支持IPV6 bind_port = 7000 #通讯端口,用于和客户端内网穿透传输数据的端口,可自定义 bind_udp_port = 7001 #UDP通讯端口,用于点对点内网穿透 kcp_bind_port = 7000 #用于KCP协议UDP通讯端口,在弱网环境下传输效率提升明显,但是会有一些额外的流量消耗。设置后frpc客户端须设置protocol = kcp vhost_http_port = 80 #http监听端口,注意可能和服务器上其他服务用的80冲突,比如centos有些默认有Apache,可自定义 vhost_https_port = 443 #https监听端口,可自定义 dashboard_port = 7500 #通过浏览器查看 frp 的状态以及代理统计信息展示端口,可自定义 dashboard_user = admin #信息展示面板用户名 dashboard_pwd = admin #信息展示面板密码 log_max_days = 7 #最多保存多少天日志 privilege_token = frp888 #特权模式认证密钥 privilege_allow_ports = 1-65535 #端口白名单,为了防止端口被滥用,可以手动指定允许哪些端口被使用 max_pool_count = 100 #每个内网穿透服务限制最大连接池上限,避免大量资源占用,可自定义 authentication_timeout = 0 #frpc 所在机器和 frps 所在机器的时间相差不能超过 15 分钟,因为时间戳会被用于加密验证中,防止报文被劫持后被其他人利用,单位为秒,默认值为 900,即 15 分钟。如果修改为 0,则 frps 将不对身份验证报文的时间戳进行超时校验。国外服务器由于时区的不同,时间会相差非常大,这里需要注意同步时间或者设置此值为0 log_file = frps.log log_level = info
2021年11月09日
1,641 阅读
0 评论
1 点赞
2021-04-22
mysql 往表中某个字段的字符串后追加字符串
NO BiBi show me Code,Go~~~update np_order set customer_remark=CONCAT(customer_remark,"sgja那里能的可能")WHERE order_id='1'
2021年04月22日
2,026 阅读
0 评论
2 点赞
2021-04-20
Macbook 电脑意外关机重启mysql链接不上的解决办法
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)解决办法sudo mysql.server stop sudo mysql.server start// Homebrew 安装MySQL想启动和关闭服务需要使用以下命令 // 启动 mysql, 并设置为开机启动 brew services start mysql // 关闭 mysql brew services stop mysql // 重启 mysql brew services restart mysql
2021年04月20日
1,673 阅读
0 评论
1 点赞
2021-04-16
PHP的strtotime计算2038年以上日期的时间戳错误
今天同事遇到一个bug,获取有效期值错误,同样的代码,其他开发人员操作都没有问题。在定位跟踪后发现有效期有值,如下:$expireDate = 2133999048;但是在该时间戳的基础上加上1 year后, $expireDate的值为false,而不是正确的时间戳。 $expireDate = strtotime("+1 year", $expireDate);Y2K38 漏洞 {message} Y2K38,又称 Unix Millennium Bug,此漏洞将会影响到所有 32 位系统下用 UNIX 时间戳整数来记录时间的 PHP,及其它编程语言。一个整型的变量所能保存的最大时间为 2038 年01月19 日 03:14:07。超过这个时间后,整型数值将会溢出。从 1970 年 01 月 01 日开始,到世界标准时 2038 年 01 月 19 日星期二凌晨 03:14:07 超过 2^31 – 1。2^31 – 1 就是0x7FFFFFFF,相信很多编程员都看过,在 32 位系统里,这表示最大的有符号整数。如果用它来表示秒数,大概相当于 68.1 年,从 1970 年到 2038 年刚好是这个数。{/message}其他解决方案就是升级 php版本到7.1以上
2021年04月16日
1,383 阅读
0 评论
1 点赞
2021-04-15
面试中遇到的sql练习题
面试中面试官问你啥问题,小编都给你整理在这里了。每天都会整理一份最接地气的面试题,希望能帮助到你!1.用一条SQL 语句查询出每门课都大于80 分的学生姓名?// 第一种方式:select name from table where name not in ( select name from table where score< 80 );// 第二种方式:select name from table group by name having min(score) >= 80;2.删除除了自动编号id不同, 其他都相同的学生冗余信息?字段分别是:id,stunum,name,course,scoredelete table where id not in ( select min(id) from table group by stunum,name,course,score );3.一个叫 team 的表,里面只有一个字段name, 一共有4 条纪录,分别是a,b,c,d, 对应四个球对,现在四个球对进行比赛,用一条sql 语句显示所有可能的比赛组合?// 所有组合:ab,ac,ad, bc,bd, cd 所有左侧字母都小于右侧字母select a.name,b.name from team a,team b where a.name < b.name order by a.name,b.name ;4.从TestDB 数据表中查询出所有月份的发生额都比101 科目相应月份的发生额高的科目?AccID :科目代码,Occmonth :发生额月份,DebitOccur :发生额select a.AccID from TestDB a,( select Occmonth,max(DebitOccur) from TestDB where AccID = '101' group by Occmonth )b where a.Occmonth = b.Occmonth and a.DebitOccur > b.DebitOccur;5.怎么把这样一个表儿查成这样一个结果select year, (select amount from table m where month=1 and m.year=aaa.year) as m1, (select amount from table m where month=2 and m.year=aaa.year) as m2, (select amount from table m where month=3 and m.year=aaa.year) as m3, (select amount from table m where month=4 and m.year=aaa.year) as m4 from table group by year6.复制表( 只复制结构, 源表名:a新表名:b)select * into b from a where 1<>1; // where1=1,拷贝表结构和数据内容7.拷贝表( 拷贝数据, 源表名:a目标表名:b)insert into b(a, b, c) select d,e,f from a;8.显示文章、提交人和最后回复时间select a.title,a.username,b.adddate from table a, (select max(adddate) adddate from table where table.title=a.title) b;9.日程安排提前五分钟提醒select * from 日程安排 where datediff('minute',f 开始时间,getdate())>5;10.两张关联表,删除主表中已经在副表中没有的信息delete from info where not exists ( select * from infobz where info.infid=infobz.infid );11.有两个表A 和B ,均有key 和value 两个字段,如果B 的key 在A 中也有,就把B 的value 换为A 中对应的value?update b set b.value=(select a.value from a where a.key=b.key) where b.id in( select b.id from b,a where b.key=a.key );12.已知有如下4张表:学生表:STUDENT(S#,SNAME,SAGE,SSEX)课程表:COURSE(C#,CNAME,T#)成绩表:SC(S#,C#,SCORE)教师表:TEACHER(T#,TNAME)(1)查询课程编号为“001”的课程比“002”的课程成绩高的所有学生的学号?select x.sno,x.score,y.score from sc x,sc y where x.cno=1001 and y.cno=1002 and x.sno=y.sno and x.score> y.score;(2)查询平均成绩大于60分的学生的学号和平均成绩?select sno,avg(score) from sc group by sno having avg(score)>60;(3)查询所有学生的学号、姓名、选课数、总成绩?select sc.sno,sname,count(cno),sum(score) from student join sc on student.sno=sc.sno group by sc.sno,sname;(4)查询姓“悟”的老师的个数?select count(Tname) from teacher where Tname like'悟%';(5)查询没学过“悟空”老师课的学生的学号、姓名?select sno,sname from student where sno not in( select sno from SC where cno in( select cno from course where tno in( select tno from teacher where tname='悟空' ) ) );
2021年04月15日
1,164 阅读
0 评论
3 点赞
2021-04-13
Macbook安装完mysql,启动时报错:ERROR! The server quit without updating PID file
上代码解决方法: sudo chown -R _mysql /usr/local/var/mysql
2021年04月13日
1,317 阅读
0 评论
2 点赞
2021-04-13
MacBook pro 新版系统如何设置vpn支持pptp类型
No bibi show code先 cd到你的maccd /etc/ppp/peers vim vpn.pplware //将下面的内容写进去保存[alt type="warning"]根据你自己的信息进行更改[/alt]plugin PPTP.ppp noauth # logfile /tmp/ppp.log remoteaddress "你的vpn地址" user "用户名" password "密码" redialcount 1 redialtimer 5 idle 1800 # mru 1368 # mtu 1368 receive-all novj 0:0 ipcp-accept-local ipcp-accept-remote # noauth refuse-eap refuse-pap refuse-chap-md5 hide-password mppe-stateless mppe-128 # require-mppe-128 looplocal nodetach # ms-dns 8.8.8.8 usepeerdns # ipparam gwvpn defaultroute debug 开启vpnsudo pppd call vpn.pplware关闭vnpsudo pkill pppd
2021年04月13日
1,604 阅读
2 评论
3 点赞
2021-04-12
免费内网穿透
如果你还没有公网域名,在本部分,你可以使用钉钉内网穿透工具,映射一个本地的公网域名使用。打开命令行工具,执行以下命令,下载内网穿透工具。git clone https://github.com/open-dingtalk/pierced.git执行以下命令,启动内网穿透。注意 Windows需使用cmd工具打开命令行。 Windows执行以下命令:cd windows_64 ding -config=ding.cfg -subdomain=abcde 8080MAC执行以下命令:cd mac_64 chmod 777 ./ding ./ding -config=./ding.cfg -subdomain=abcde 8080启动完客户端后,你访问http://abcde.vaiwan.com/xxxxx 都会映射到 http://127.0.0.1:8080/xxxxx。重启后端服务。
2021年04月12日
1,213 阅读
0 评论
2 点赞
2021-04-10
Redis中两种持久化机制RDB和AOF,工作上常用到
众所周知,Redis是一个内存数据库。但它与其它内存数据库(如memcache)等有一个很大的区别,就是Redis可以持久化到磁盘。有了持久化方案,Redis就可以对数据进行备份、恢复、复制。Redis提供了两种持久化方案:RDB和AOF。在Redis 4.0中,提供了一个新特性:两者的混合持久化。下面将介绍Redis的各种持久化方案的原理和配置。1.RDB持久化RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。1)触发机制手动触发分别对应save和bgsave命令。save命令:阻塞当前Redis服务器,直到RDB过程完成为止,对于内存 比较大的实例会造成长时间阻塞,线上环境不建议使用。bgsave命令:Redis进程执行fork操作创建子进程,RDB持久化过程由子 进程负责,完成后自动结束。阻塞只发生在fork阶段,一般时间很短。2)自动触发RDB的持久1)使用save相关配置,如“save m n”。表示m秒内数据集存在n次修改 时,自动触发bgsave。2)如果从节点执行全量复制操作,主节点自动执行bgsave生成RDB文件并发送给从节点,更多细节见6.3节介绍的复制原理。3)执行debug reload命令重新加载Redis时,也会自动触发save操作。4)默认情况下执行shutdown命令时,如果没有开启AOF持久化功能则 自动执行bgsave。bgsave是主流的触发RDB持久化方式1)执行bgsave命令,Redis父进程判断当前是否存在正在执行的子进 程,如RDB/AOF子进程,如果存在bgsave命令直接返回。2)父进程执行fork操作创建子进程,fork操作过程中父进程会阻塞,通 过info stats命令查看latest_fork_usec选项,可以获取最近一个fork操作的耗时,单位为微秒3)父进程fork完成后,bgsave命令返回“Background saving started”信息并不再阻塞父进程,可以继续响应其他命令。4)子进程创建RDB文件,根据父进程内存生成临时快照文件,完成后 对原有文件进行原子替换。执行lastsave命令可以获取最后一次生成RDB的 时间,对应info统计的rdb_last_save_time选项。5)进程发送信号给父进程表示完成,父进程更新统计信息,具体见 info Persistence下的rdb_*相关选项。RDB文件的处理保存:RDB文件保存在dir配置指定的目录下,文件名通过dbfilename配 置指定。可以通过执行config set dir{newDir}和config set dbfilename{newFileName}运行期动态执行,当下次运行时RDB文件会保存到新目录。RDB的优缺点RDB的优点:1 RDB是一个紧凑压缩的二进制文件,代表Redis在某个时间点上的数据 快照。非常适用于备份,全量复制等场景。比如每6小时执行bgsave备份, 并把RDB文件拷贝到远程机器或者文件系统中(如hdfs),用于灾难恢复。2 Redis加载RDB恢复数据远远快于AOF的方式。RDB的缺点:1)RDB方式数据没办法做到实时持久化/秒级持久化。因为bgsave每次运 行都要执行fork操作创建子进程,属于重量级操作,频繁执行成本过高。2)RDB文件使用特定二进制格式保存,Redis版本演进过程中有多个格式 的RDB版本,存在老版本Redis服务无法兼容新版RDB格式的问题。针对RDB不适合实时持久化的问题,Redis提供了AOF持久化方式来解决。2.AOF持久化AOF(append only file)持久化:以独立日志的方式记录每次写命令, 重启时再重新执行AOF文件中的命令达到恢复数据的目的。AOF的主要作用 是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式。1)使用AOF开启AOF功能需要设置配置:appendonly yes,默认不开启。AOF文件名 通过appendfilename配置设置,默认文件名是appendonly.aof。保存路径同 RDB持久化方式一致,通过dir配置指定。AOF的工作流程操作:命令写入 (append)、文件同步(sync)、文件重写(rewrite)、重启加载 (load)1)所有的写入命令会追加到aof_buf(缓冲区)中。2)AOF缓冲区根据对应的策略向硬盘做同步操作。AOF为什么把命令追加到aof_buf中?Redis使用单线程响应命令,如 果每次写AOF文件命令都直接追加到硬盘,那么性能完全取决于当前硬盘负 载。先写入缓冲区aof_buf中,还有另一个好处,Redis可以提供多种缓冲区同步硬盘的策略,在性能和安全性方面做出平衡3)随着AOF文件越来越大,需要定期对AOF文件进行重写,达到压缩的目的。重写后的AOF文件为什么可以变小?有如下原因:1 进程内已经超时的数据不再写入文件。2 旧的AOF文件含有无效命令,如del key1、hdel key2、srem keys、set a111、set a222等。重写使用进程内数据直接生成,这样新的AOF文件只保留最终数据的写入命令。3 多条写命令可以合并为一个,如:lpush list a、lpush list b、lpush list c可以转化为:lpush list a b c。为了防止单条命令过大造成客户端缓冲区溢 出,对于list、set、hash、zset等类型操作,以64个元素为界拆分为多条。AOF重写降低了文件占用空间,除此之外,另一个目的是:更小的AOF 文件可以更快地被Redis加载AOF重写过程可以手动触发和自动触发:手动触发:直接调用bgrewriteaof命令。自动触发:根据auto-aof-rewrite-min-size和auto-aof-rewrite-percentage参数确定自动触发时机。auto-aof-rewrite-min-size:表示运行AOF重写时文件最小体积,默认 为64MB。auto-aof-rewrite-percentage:代表当前AOF文件空间 (aof_current_size)和上一次重写后AOF文件空间(aof_base_size)的比值。自动触发时机=aof_current_size>auto-aof-rewrite-minsize&&(aof_current_size-aof_base_size)/aof_base_size>=auto-aof-rewritepercentage。其中aof_current_size和aof_base_size可以在info Persistence统计信息中查看。4)当Redis服务器重启时,可以加载AOF文件进行数据恢复。流程说明:1)AOF持久化开启且存在AOF文件时,优先加载AOF文件,打印如下日志:DB loaded from append only file: 5.841 seconds2)AOF关闭或者AOF文件不存在时,加载RDB文件,打印如下日志:DB loaded from disk: 5.586 seconds3)加载AOF/RDB文件成功后,Redis启动成功。4)AOF/RDB文件存在错误时,Redis启动失败并打印错误信息。
2021年04月10日
848 阅读
0 评论
1 点赞
1
2
3
...
6