<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>袁来如此的工作笔记</title><link>https://www.travelyuan.com/</link><description>竹杖芒鞋轻胜马，谁怕？ 一蓑烟雨任平生。</description><item><title>透明网桥调用iptables修改数据包无效</title><link>https://www.travelyuan.com/post/Transparent-bridge-calling-iptables-to-modify-packet-invalid.html</link><description>问题&lt;br /&gt;
使用命令iptables -t mangle -A POSTROUTING -o bridge0 -j TTL --ttl-set 50&lt;br /&gt;
ttl没有变换&lt;br /&gt;
&lt;br /&gt;
解决办法：&lt;br /&gt;
启动bridge-nf：&lt;br /&gt;
modprobe br_netfilter&lt;br /&gt;
&lt;br /&gt;
编辑文件vim /etc/sysctl.conf 添加：&lt;br /&gt;
net.bridge.bridge-nf-call-ip6tables = 1&lt;br /&gt;
net.bridge.bridge-nf-call-iptables = 1&lt;br /&gt;
net.bridge.bridge-nf-call-arptables = 1&lt;br /&gt;
&lt;br /&gt;
进行该配置后，执行命令&lt;br /&gt;
/sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
原因&lt;br /&gt;
网桥在数据链路层工作，数据会直接经过网桥转发，iptables需要开启bridge-nf&lt;br /&gt;
centos默认不开启 bridge-nf&lt;br /&gt;</description><pubDate>Sat, 16 Mar 2024 17:28:45 +0800</pubDate></item><item><title>Ubuntu安装yum</title><link>https://www.travelyuan.com/post/Ubuntu-yum.html</link><description>what:&lt;br /&gt;
&lt;br /&gt;
why:&lt;br /&gt;
&lt;br /&gt;
how:&lt;br /&gt;
&lt;pre class=&quot;prettyprint lang-bsh linenums&quot;&gt;sudo apt-get install build-essential
sudo apt-get install yum&lt;/pre&gt;
&lt;br /&gt;</description><pubDate>Sat, 16 Mar 2024 17:21:56 +0800</pubDate></item><item><title>grep命令</title><link>https://www.travelyuan.com/post/grep.html</link><description>&lt;pre class=&quot;prettyprint linenums&quot;&gt;grep（global search regular expression(RE) and print out the line，全面搜索正则表达式并把行打印出来）是一种强大的文本搜索工具，它能使用正则表达式搜索文本，并把匹配的行打印出来。


 



 

-a 不要忽略二进制数据。

-A&amp;lt;显示列数&amp;gt; 除了显示符合范本样式的那一行之外，并显示该行之后的内容。

-b 打印样式匹配所位于的字符或字节偏移

-B 在显示符合范本样式的那一行之外，并显示该行之前的内容。

-c 计算符合范本样式的列数。

-C&amp;lt;显示列数&amp;gt;或-&amp;lt;显示列数&amp;gt; 除了显示符合范本样式的那一列之外，并显示该列之前后的内容。

-d&amp;lt;进行动作&amp;gt; 当指定要查找的是目录而非文件时，必须使用这项参数，否则grep命令将回报信息并停止动作。

-e&amp;lt;范本样式&amp;gt; 指定字符串作为查找文件内容的范本样式。

-E 将范本样式为延伸的普通表示法来使用，意味着使用能使用扩展正则表达式。

-f&amp;lt;范本文件&amp;gt; 指定范本文件，其内容有一个或多个范本样式，让grep查找符合范本条件的文件内容，格式为每一列的范本样式。

-F 将范本样式视为固定字符串的列表。

-G 将范本样式视为普通的表示法来使用。

-h 在显示符合范本样式的那一列之前，不标示该列所属的文件名称。

-H 在显示符合范本样式的那一列之前，标示该列的文件名称。

-i 忽略字符大小写的差别。

-l 列出文件内容符合指定的范本样式的文件名称。

-L 列出文件内容不符合指定的范本样式的文件名称。

-n 在显示符合范本样式的那一列之前，标示出该列的编号。

-q 不显示任何信息。

-R/-r 此参数的效果和指定“-d recurse”参数相同。  在多级目录中对文本进行递归搜索

-s 不显示错误信息。

-v 反转查找。

-w 只显示全字符合的列。

-x 只显示全列符合的列。

-y 此参数效果跟“-i”相同。

-o 只输出文件中匹配到的部分。


  a.txt文件


a
bb
ccc
dddd
1a
2b
3d
4a
5a

-A 1 表示找到所有匹配行，并显示所有匹配行后的一行
在错误日志查找时还是很有用
$ grep -A 1 b a.txt bb                //找到b了
ccc              //显示bb这一行的后面一行
--
2b
3d 

-B 1  表示找到所有匹配行，并显示所有匹配行的前面一行
$ grep -B 1 b a.txt a
bb             //匹配到b了，把bb这一行到前一行也显示出来
--
1a
2b 

-C 1表示找到所有匹配行，并显示所有匹配行的前一行，后一行
$ grep -C 1 b a.txt a
bb             //匹配到b了，把a,ccc前后一行也显示出来
ccc
--
1a
2b
3d 

-a 不要忽略二进制数据 表示把所有文件当作ASCII文件来处理 搜索二进制文件 //a.pcap是一个tcpdump生成的文件，为binary文件,使用grep不能搜索

$ grep &quot;HOST&quot; a.pcap
Binary file a.pcap matches

$ grep -a &quot;HOST&quot; a.pcap
HOST: 239.255.255.250:1900
HOST: 239.255.255.250:1900 -b 表示显示match的字符串在文件中的offset  （标示出该行第一个字符的编号）
$grep -b  a a.txt 0:a
14:1a        //表示这一行的a在文件中的offset为14
23:4a
26:5a


-c 显示有多少行match的字符串(也就是有4行带a的)

$grep -c a a.txt  4

-e 后面跟一个正则表达式，指定多个正则表达式的时候很有用
$grep -e [a] -e [0-2] a.txt     //匹配a   或者0,1,2 

   a
   1a
   2b
   4a
   5a

 


pattern.txt

   a
   b
   0
   2


-f可以指定pattern在我们的文件中   pattern文件中的每一行都会来进行匹配

$grep -f pattern.txt  a.txt

   a
   bb
   1a
   2b
   4a
   5a

 


-m 最多匹配几个后，就停止，这样速度会比较快
$ grep -m 2 a a.txt a
1a 

-n 匹配之后，在前面打印行号，这个还是有用的
$ grep -n a a.txt 1:a
5:1a
8:4a
9:5a 

-o 只打印匹配的内容
$ grep -o a a.txt a
a
a
a


//只能搜索当前目录
$grep  a * a.txt:a
a.txt:1a
a.txt:4a
a.txt:5a
b.txt:aaa
grep: cc: Is a directory      //碰到一个目录了 

$grep -R a *           //搜索子目录 a.txt:a
a.txt:1a
a.txt:4a
a.txt:5a
b.txt:aaa
cc/b.txt:a                  //这个目录也找到了


-v  invert查找   下面为在a.txt中，查找不包含&quot;a&quot;的行 这个命令会经常使用
$ grep -v a a.txt bb
ccc
dddd
2b
3d
2 

-w  查找一个词 word.txt
it is a good day   //分成五个词，分别是it , is, a, good, day
itis a goodday     //分成三个词，分别是itis, a,  goodday $ grep -w it word.txt  it is a good day $ grep -w good word.txt it is a good day 

^pattern  表示开头处开始匹配

grep &quot;^i&quot; word.txt  

 it is a good day
   itis a goodday


 grep &quot;^is&quot; word.txt    //因为is不在行的开始处，所以没有匹配上 

pattern$ 从结尾处匹配  grep &quot;is$&quot; word.txt  . 为匹配任意单个字符 $ echo &quot;it is&quot; |grep &quot;.&quot;
it is

$echo &quot;it is&quot; |grep &quot;a.&quot; &quot;.*&quot;  匹配任意长度的任意字符 $ echo &quot;it is&quot; |grep &quot;.*&quot;
it is

$ echo &quot;#&quot; |grep &quot;.*&quot;        //匹配任意字符，所以#也可以匹配
# &quot;r.*h&quot;  //匹配一个字符串，其中有r，有h，且r在前，h在后，且r和h之间可以间隔任意长度的任意字符串，当然也可以没有间隔
$ echo &quot;redhat&quot; |grep &quot;r.*h&quot;
redhat

$ echo &quot;rh&quot; |grep &quot;r.*h&quot;
rh

$ echo &quot;redhat&quot; |grep &quot;r.*b&quot; &quot;^r.*h$&quot;  //匹配一个字符串，其中r是第一个字符，h是最后一个字符，且r和h之间可以间隔任意长度的任意字符串，当然也可以没有间隔
$ echo &quot;rh&quot; |grep &quot;^r.*h$&quot;
rh

$ echo &quot;redh&quot; |grep &quot;^r.*h$&quot;
redh

$ echo &quot;redhat&quot; |grep &quot;^r.*h$&quot;       //这里匹配不上 匹配指定范围内的任意字符 [e] 匹配任意单个字符 $ echo &quot;redh&quot; |grep &quot;[e]&quot;
redh

$ echo &quot;redh&quot; |grep &quot;[s]&quot; 匹配指定范围内的任意字符 [eh]  匹配e或h $ echo &quot;redh&quot; |grep &quot;[eh]&quot;
redh

$ echo &quot;redh&quot; |grep &quot;[sh]&quot;
redh 匹配指定范围内的任意字符 [a-z],[1-3a-b] [1-3a-bX-Z]  $ echo &quot;redh&quot; |grep &quot;[a-d]&quot;
redh

$ echo &quot;redh&quot; |grep &quot;[d-f]&quot;
redh

$ echo &quot;redh&quot; |grep &quot;[d-a]&quot;
grep: invalid character range

$ echo &quot;redh&quot; |grep &quot;[f-f]&quot;      

$ echo &quot;redh&quot; |grep &quot;[a-z]&quot;
redh

$ echo &quot;redX&quot; |grep &quot;[x-x]&quot;

$ echo &quot;redX&quot; |grep &quot;[X-X]&quot;
redX

$ echo &quot;redX&quot; |grep &quot;[a-Z]&quot;
grep: invalid character range

$ echo &quot;16&quot; |grep &quot;[1-2]&quot;
16


$ echo &quot;16&quot; |grep &quot;[5-8]&quot;
16

$ echo &quot;16&quot; |grep &quot;[1-9a-z]&quot;
16

$ echo &quot;b&quot; |grep &quot;[1-9a-z]&quot;
b

$ echo &quot;1xX&quot; |grep &quot;[1-1x-zX-X]&quot;
1xX //[^]   匹配指定范围外的字符 $ echo &quot;1&quot; |grep &quot;[^1-3]&quot;      //匹配非[1-3]的，不能匹配上
$ echo &quot;2&quot; |grep &quot;[^1-3]&quot;      //匹配非[1-3]的，不能匹配上
$ echo &quot;3&quot; |grep &quot;[^1-3]&quot;      //匹配非[1-3]的，不能匹配上
$ echo &quot;4&quot; |grep &quot;[^1-3]&quot;      //匹配非[1-3]的，能匹配上
4

$ echo &quot;a&quot; |grep &quot;[^1-3]&quot;      //匹配非[1-3]的
a

$echo &quot;a&quot; |grep &quot;[^1-3a-b]&quot;

$echo &quot;a&quot; |grep &quot;[^1-3a-b]&quot;    //匹配非[1-3],非[a-b]的 ，匹配不上

$echo &quot;c&quot; |grep &quot;[^1-3a-b]&quot;    //匹配非[1-3],非[a-b]的 ，匹配不上
c

$echo &quot;4&quot; |grep &quot;[^1-3a-b]&quot;   //匹配非[1-3],非[a-b]的 ，能匹配上
4 [[:space:]]  匹配空白字符 $ echo &quot;a&quot;|grep &quot;[[:space:]]&quot;

$ echo &quot;a b&quot;|grep &quot;[[:space:]]&quot;
a b \? 表示匹配前面的字符串0次或1次 $ echo &quot;z&quot;|grep &quot;z\(a\?\)&quot;
z

$ echo &quot;za&quot;|grep &quot;z\(a\?\)&quot;
za

$ echo &quot;ab&quot;|grep &quot;z\(a\?\)&quot;    //不匹配 {m,n}  匹配前面的字符串m到n次 $ echo &quot;aa&quot;|grep &quot;a\{1,3\}&quot;       //匹配a,aa,aaa
aa

$ echo &quot;aa&quot;|grep &quot;a\{2,3\}&quot;
aa

$ echo &quot;aa&quot;|grep &quot;a\{3,4\}&quot;      //不匹配 {2,} 匹配前面的字符串至少两次 $ echo &quot;aa&quot;|grep &quot;a\{1,\}&quot;
aa

$ echo &quot;aa&quot;|grep &quot;a\{2,\}&quot;
aa

$ echo &quot;aa&quot;|grep &quot;a\{3,\}&quot;    //不匹配  \&amp;lt;pattern1必须以pattern1开头    \pattern2&amp;gt; 必须以pattern2结尾 $ echo &quot;redhat&quot;|grep &quot;\&amp;lt;r[1-9]*&quot; redhat=&quot;&quot; $=&quot;&quot; echo=&quot;&quot; &quot;redhat&quot;|grep=&quot;&quot; &quot;[a-z]*t\=&quot;&quot;&amp;gt;&quot;
redhat

$ echo &quot;redhat&quot;|grep &quot;\&amp;lt;r[a-z]*t\&amp;gt;&quot;
redhat

$ echo &quot;zredhat&quot;|grep &quot;\&amp;lt;r[a-z]*t\&amp;gt;&quot;          //不匹配
$ echo &quot;redhat&quot;|grep &quot;\&amp;lt;r[1-9]*t\&amp;gt;&quot;          //不匹配
$ echo &quot;redhat&quot;|grep &quot;^r[a-z]*t$&quot;            //相当于这个
redhat () 用来进行分组，  下面这个就是匹配带有re和rea的 $ echo &quot;redhat&quot;|grep &quot;\(re\)\(a\?\)&quot;
redhat

$ echo &quot;zedhat&quot;|grep &quot;\(re\)\(a\?\)&quot;       //匹配不上 \+   表示匹配前面的字符串一次或多次 $ echo &quot;zredhat&quot;|grep &quot;\(re\)\(d\+\)&quot;      //匹配red,redd,reddd,redddd,...
zredhat

$ echo &quot;zrehat&quot;|grep &quot;\(re\)\(d\+\)&quot;      //匹配不上 \|  表示或的关系 $ echo &quot;d&quot;|grep &quot;\(re\)\|\(d\+\)&quot;       //匹配re    或者d,dd,ddd..
d

$ echo &quot;re&quot;|grep &quot;\(re\)\|\(d\+\)&quot;
re

$ echo &quot;a&quot;|grep &quot;\(re\)\|\(d\+\)&quot;       //没有匹配上
&lt;/pre&gt;
&lt;br /&gt;</description><pubDate>Sun, 24 Dec 2023 16:16:52 +0800</pubDate></item><item><title>mysql对包含数字的字符串进行查询排序</title><link>https://www.travelyuan.com/post/mysql-string-order.html</link><description>&lt;pre class=&quot;prettyprint lang-html linenums&quot;&gt;SELECT * FROM park_test ORDER BY LENGTH(`code`),`code` asc
&lt;div&gt;
	
&lt;/div&gt;
&lt;/pre&gt;
&lt;br /&gt;</description><pubDate>Sun, 24 Dec 2023 16:14:17 +0800</pubDate></item><item><title>js判断图片是否存在</title><link>https://www.travelyuan.com/post/js-pic-isset.html</link><description>&lt;pre class=&quot;prettyprint lang-html linenums&quot;&gt;//判断图片是否存在
function checkImgExists(imgurl) {
&amp;nbsp; &amp;nbsp; var ImgObj = new Image(); //判断图片是否存在
&amp;nbsp; &amp;nbsp; ImgObj.src = imgurl;
&amp;nbsp; &amp;nbsp; //存在图片
&amp;nbsp; &amp;nbsp; if (ImgObj.fileSize &amp;gt; 0 || (ImgObj.width &amp;gt; 0 &amp;amp;&amp;amp; ImgObj.height &amp;gt; 0)) {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&amp;nbsp; &amp;nbsp; } else {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&amp;nbsp; &amp;nbsp; &amp;nbsp;}
}
&lt;/pre&gt;
&lt;br /&gt;</description><pubDate>Sun, 24 Dec 2023 16:10:33 +0800</pubDate></item><item><title>sed命令</title><link>https://www.travelyuan.com/post/sed.html</link><description>&lt;pre class=&quot;prettyprint lang-html linenums&quot;&gt;sed -e '编辑命令' 文件1 文件2 ...
sed -n -e '编辑命令' 文件1 文件2...
sed -i -e '编辑命令' 文件1 文件2...

&lt;/pre&gt;
&lt;pre class=&quot;prettyprint lang-html linenums&quot;&gt;-e 或 --expression=：表示用指定命令或脚本来处理输入的文本文件
&amp;nbsp;
-f 或 --file=：表示用指定的脚本文件来处理输入的文本文件
&amp;nbsp;
-h 或 --help:显示帮助。
&amp;nbsp;
-n、--quiet 或silent：表示仅显示处理后的结果。
&amp;nbsp;
-i.bak ：直接编辑文本文件
&amp;nbsp;
-r，-E 使用扩展正则表达式
&amp;nbsp;
-s 将多个文件视为独立文件，而不是单个连续的长文件流&lt;/pre&gt;
&lt;pre class=&quot;prettyprint lang-html linenums&quot;&gt;
&lt;/pre&gt;
&lt;pre class=&quot;prettyprint lang-html linenums&quot;&gt;a：增加，在当前行下面增加一行指定内容
c：替换，将选定行替换为指定内容
d：删除,删除选定的行。
i：插入，在选定行上面插入一行指定内容
p：打印，如果同时指定行，表示打印指定行;如果不指定行，则表示打印出所有内容；如果有非打印字符，则以ASCII码输出。其通常与&quot;-n&quot;选项一起使用。
s：替换，替换指定字符
y：字符转换。

&lt;/pre&gt;
&lt;pre class=&quot;prettyprint lang-html linenums&quot;&gt;
&lt;/pre&gt;
&lt;pre class=&quot;prettyprint lang-html linenums&quot;&gt;H:复制到剪切板
g、G：将剪切板中的数据覆盖/追加至指定行
w：保存为文件
r：读取指定文件
a：增加指定内容。具体操作方法如下所示
I，i 忽略大小写

&amp;nbsp;
&lt;/pre&gt;
&lt;br /&gt;</description><pubDate>Sun, 24 Dec 2023 16:09:25 +0800</pubDate></item><item><title>MySQL获取当前时间/秒级/毫秒级时间戳</title><link>https://www.travelyuan.com/post/MySQL-timestamp.html</link><description>&lt;pre class=&quot;prettyprint lang-html linenums&quot;&gt;#当前时间戳（秒级）：2020-08-08 12:09:42
select current_timestamp();

#当前时间戳（毫秒级）：2020-08-08 12:09:42.192
select current_timestamp(3);

# 秒级时间戳：1606371113 （自19700101 00:00:00以来按秒算）
UNIX_TIMESTAMP(NOW())

# 毫秒级时间戳：1606371209.293
select unix_timestamp(current_timestamp(3))

# 毫秒级时间戳：1606371209293
REPLACE(unix_timestamp(current_timestamp(3)),'.','')
&lt;/pre&gt;
&lt;pre class=&quot;prettyprint lang-html linenums&quot;&gt;
&lt;/pre&gt;
&lt;pre class=&quot;prettyprint lang-html linenums&quot;&gt;#Mysql中写法：
-- 直接调用NOW()函数就能获取当前时间，然后直接执行插入即可
-- 例： 2008-11-11 12:45:34&amp;nbsp; &amp;nbsp;&amp;nbsp;
insert into table (id,create_time) values(1,NOW());

--&amp;nbsp; 或者使用CURDATE()，获取的是当前&quot;年-月-日&quot;时间
-- 例： 2008-11-11
insert into table (id,create_time) values(2,CURDATE());

--&amp;nbsp; 或者使用CURTIME()，获取的是当前&quot;时:分:秒&quot;时间
-- 例： 12:45:34
insert into table (id,create_time) values(3,CURTIME());

#Oracle中写法:
-- 使用SYSDATE,获取的是当前的“年-月-日 时:分:秒”时间
--例： 2022-2-15 11:11:11
insert into table (id,create_time) values(4,SYSDATE);

&lt;/pre&gt;
&lt;br /&gt;</description><pubDate>Sun, 24 Dec 2023 16:05:23 +0800</pubDate></item><item><title>VUE+iframe添加请求头</title><link>https://www.travelyuan.com/post/VUE-iframe-token.html</link><description>&lt;pre class=&quot;prettyprint lang-html linenums&quot;&gt;&amp;lt;iframe id=&quot;iframe&quot; src=&quot;&quot; /&amp;gt;

setTimeout(() =&amp;gt; {
  var iframe = document.querySelector(&quot;#iframe&quot;);
  this.populateIframe(iframe, [[&quot;Authorization&quot;, &quot;Bearer &quot; + getToken()]]);
}, 0);

  methods: {
    populateIframe(iframe, headers) {
      var xhr = new XMLHttpRequest();
      xhr.open(&quot;GET&quot;, 'http：localhost:8080/xxx');
      xhr.responseType = &quot;blob&quot;;
      headers.forEach((header) =&amp;gt; {
        xhr.setRequestHeader(header[0], header[1]);
      });
      xhr.onreadystatechange = () =&amp;gt; {
        if (xhr.readyState === xhr.DONE) {
          if (xhr.status === 200) {
            iframe.src = URL.createObjectURL(xhr.response);
          }
        }
      };
      xhr.send();
    },
  }&lt;/pre&gt;
&lt;br /&gt;</description><pubDate>Sun, 24 Dec 2023 16:03:26 +0800</pubDate></item><item><title>mysqldump 导出数据指定表 、排除表(单个和多个)</title><link>https://www.travelyuan.com/post/mysqldump.html</link><description>&lt;pre class=&quot;prettyprint lang-php linenums&quot;&gt;
&lt;div&gt;
	
	&lt;h1&gt;
		1、导出结构&amp;amp;数据：
	&lt;/h1&gt;

	&lt;p&gt;
		1、mysqldump 导出指定表
	&lt;/p&gt;

	&lt;p&gt;
		mysqldump &amp;nbsp;database-u username-ppassword--tables table_name1&amp;nbsp;table_name2&amp;nbsp;table_name3&amp;gt;D:\test.sql
	&lt;/p&gt;

	&lt;p&gt;
		2、mysql 数据导出排除指定某个表
	&lt;/p&gt;

	&lt;p&gt;
		mysqldump --database&amp;nbsp; test&amp;nbsp; --ignore-table=test.a &amp;gt; test.sql
	&lt;/p&gt;

	&lt;p&gt;
		3、mysql 数据导出排除指定的多个表--多表间并列
	&lt;/p&gt;

	&lt;p&gt;
		mysqldump --database&amp;nbsp; test&amp;nbsp; --ignore-table=test.a --ignore-table=test.b&amp;nbsp;--ignore-table=test.c&amp;nbsp;&amp;gt; test.sql
	&lt;/p&gt;

	&lt;p&gt;
		&lt;br /&gt;

	&lt;/p&gt;

	&lt;h1&gt;
		2、导出结构 OR 导出数据
	&lt;/h1&gt;

	&lt;p&gt;
		1.导出指定表的数据
	&lt;/p&gt;

	&lt;p&gt;
		mysqldump -tdatabase-u username-ppassword--tables table_name1 table_name2&amp;nbsp;table_name3&amp;nbsp;&amp;gt;D:\db_script.sql
	&lt;/p&gt;

	&lt;p&gt;
		&amp;nbsp; 导出数据不导出结构
	&lt;/p&gt;

	&lt;p&gt;
		&amp;nbsp; mysqldump -t 数据库名 -uroot -p　&amp;gt; xxx.sql
	&lt;/p&gt;

	&lt;p&gt;
		2.导出指定表的结构
	&lt;/p&gt;

	&lt;p&gt;
		mysqldump -ddatabase-u username-ppassword--tables table_name1&amp;nbsp;table_name2&amp;nbsp;table_name3&amp;gt;D:\db_script.sql3.导出表的数据及结构
	&lt;/p&gt;

	&lt;p&gt;
		mysqldump &amp;nbsp;database-u username-ppassword--tables table_name1&amp;nbsp;table_name2&amp;nbsp;table_name3&amp;gt;D:\db_script.sql4.若 数据中 ，某些表除外，其余表都需导出
	&lt;/p&gt;

	&lt;p&gt;
		mysqldump -h IP-u username-ppassword--default-character-set=utf8 --database database_name --ignore-table=database_name.table_name1--ignore-table=database_name.table_name2&amp;nbsp;--ignore-table=database_name.table_name3 &amp;gt;D:\db_script.sql
	&lt;/p&gt;

&lt;/div&gt;
&lt;/pre&gt;</description><pubDate>Sun, 24 Dec 2023 16:00:23 +0800</pubDate></item><item><title>ThinkPHP6 API开发前后端分离用户信息保存在后端的方法</title><link>https://www.travelyuan.com/post/ThinkPHP6-API.html</link><description>&lt;pre class=&quot;prettyprint lang-php linenums&quot;&gt;public function handle(Request $request, \Closure $next): Response
    {
        //获取访问用户的token，我这里用的是authorization字段，大家根据自己的项目实况
        $token = $request-&amp;gt;header('authorization');
        //因为前后端分离规范的问题，加上JWT校验的格式，提交来的Token前面携带的Bearer我给干掉
        $token = str_replace('Bearer ','',$token);
        //干掉之后就可以丢给JWT去验证这个Token是否有效了
        $result = checkToken($token);
        //验证token是否正确
        if($result['code'] !== 1){
            return create([],'请登录后在进行操作',401);
        }else{
            //验证完成之后我们给返回的用户信息写入到request里面
            $request-&amp;gt;userInfo = $result['data'];
            return $next($request);
        }
    }&lt;/pre&gt;
&lt;pre class=&quot;prettyprint lang-php linenums&quot;&gt;
&lt;/pre&gt;
&lt;pre class=&quot;prettyprint lang-php linenums&quot;&gt;
&lt;pre class=&quot;prettyprint lang-php linenums&quot;&gt;//调用方法
request()-&amp;gt;userInfo;&lt;/pre&gt;
&lt;br /&gt;
&lt;/pre&gt;
&lt;br /&gt;</description><pubDate>Sun, 24 Dec 2023 15:58:52 +0800</pubDate></item></channel></rss><!--26.64 ms , 6 query , 1820kb memory , 0 error-->