首页 > 其他分享 >IoTDB 入门教程 企业篇①——IoTDB企业版(TimechoDB)快速上手

IoTDB 入门教程 企业篇①——IoTDB企业版(TimechoDB)快速上手

时间:2024-08-02 22:52:42浏览次数:17  
标签:INFO 01 08 入门教程 2024 TimechoDB IoTDB main LISTEN

文章目录

一、前文

IoTDB入门教程——导读

二、试用

三、解压

  • iotdb-enterprise-1.3.1.4-bin
    • activation: 机器文件目录
    • conf:配置文件目录
    • lib:依赖包目录
    • licenses:证书文件目录
    • sbin:启动和停止脚本目录
    • tools:系统工具目录

在这里插入图片描述

  • iotdb-workbench-1.2.2
    • config:配置文件目录
    • data:数据文件目录
    • sbin:启动和停止脚本目录
    • iotdb-workbench.jar:主jar包

在这里插入图片描述

四、激活

  • 将解压后的文件通过Xshell/Xftp直接上传到Linux服务器
  • 运行bash sbin/start-confignode.sh
[root@iZgw0bdpdtyqxyz77dha9nZ iotdb-enterprise-1.3.1.4-bin]# bash sbin/start-confignode.sh
----------------------------
Starting TimechoDB ConfigNode
----------------------------
Checking whether the ports are already occupied...
WARN:
WARN: the value of net.core.somaxconn (=128) is too small, please set it to a larger value using the following command.
WARN:     sudo sysctl -w net.core.somaxconn=65535
WARN: The original net.core.somaxconn value will be set back when the os reboots.
WARN:
setting local JMX...
ConfigNode on heap memory size = 384MB, off heap memory size = 128MB
If you want to change this configuration, please check conf/confignode-env.sh.
2024-08-01 11:56:26,650 [main] INFO  o.a.i.c.c.ConfigNodeDescriptor:107 - Start to read config file file:sbin/../conf/iotdb-common.properties 
2024-08-01 11:56:26,658 [main] INFO  o.a.i.c.c.ConfigNodeDescriptor:129 - start reading ConfigNode conf file: file:sbin/../conf/iotdb-confignode.properties 
2024-08-01 11:56:26,671 [main] INFO  o.a.i.c.s.ConfigNode:107 - IoTDB-ConfigNode environment variables: 

……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………

2024-08-01 11:56:28,655 [main] INFO  o.a.i.c.s.ConfigNode:197 - IoTDB-ConfigNode has successfully started and joined the cluster: defaultCluster. 

2024-08-01 11:59:28,212 [pool-5-IoTDB-Pipe-Runtime-Meta-Syncer-1] INFO  o.a.i.c.m.p.c.t.PipeTaskCoordinatorLock:64 - PipeTaskCoordinator lock (id: 1) waiting for thread pool-5-IoTDB-Pipe-Runtime-Meta-Syncer-1 
2024-08-01 11:59:28,213 [pool-5-IoTDB-Pipe-Runtime-Meta-Syncer-1] INFO  o.a.i.c.m.p.c.t.PipeTaskCoordinatorLock:69 - PipeTaskCoordinator lock (id: 1) acquired by thread pool-5-IoTDB-Pipe-Runtime-Meta-Syncer-1 
2024-08-01 11:59:28,214 [pool-5-IoTDB-Pipe-Runtime-Meta-Syncer-1] INFO  o.a.i.c.m.p.c.t.PipeTaskCoordinatorLock:97 - PipeTaskCoordinator lock (id: 1) released by thread pool-5-IoTDB-Pipe-Runtime-Meta-Syncer-1 
2024-08-01 11:59:28,233 [ProcExecWorker-1] INFO  o.a.i.c.p.i.p.AbstractOperatePipeProcedureV2:80 - ProcedureId 1 try to acquire pipe lock. 
2024-08-01 11:59:28,234 [ProcExecWorker-1] INFO  o.a.i.c.m.p.c.t.PipeTaskCoordinatorLock:64 - PipeTaskCoordinator lock (id: 2) waiting for thread ProcExecWorker-1 
2024-08-01 11:59:28,234 [ProcExecWorker-1] INFO  o.a.i.c.m.p.c.t.PipeTaskCoordinatorLock:69 - PipeTaskCoordinator lock (id: 2) acquired by thread ProcExecWorker-1 
2024-08-01 11:59:28,234 [ProcExecWorker-1] INFO  o.a.i.c.p.i.p.AbstractOperatePipeProcedureV2:90 - ProcedureId 1 acquired pipe lock. 
2024-08-01 11:59:28,234 [ProcExecWorker-1] INFO  o.a.i.c.p.i.n.AbstractNodeProcedure:39 - procedureId 1 acquire lock. 
2024-08-01 11:59:28,235 [ProcExecWorker-1] INFO  o.a.i.c.p.i.p.AbstractOperatePipeProcedureV2:101 - ProcedureId 1: LOCK_ACQUIRED. The following procedure should be executed with pipe lock. 
2024-08-01 11:59:28,240 [ProcExecWorker-1] INFO  o.a.i.c.p.i.p.r.PipeMetaSyncProcedure:51 - PipeMetaSyncProcedure: executeFromValidateTask 
2024-08-01 11:59:28,246 [ProcExecWorker-1] INFO  o.a.i.c.p.i.p.r.PipeMetaSyncProcedure:59 - PipeMetaSyncProcedure: executeFromCalculateInfoForTask 
2024-08-01 11:59:28,251 [ProcExecWorker-1] INFO  o.a.i.c.p.i.p.r.PipeMetaSyncProcedure:66 - PipeMetaSyncProcedure: executeFromWriteConfigNodeConsensus 
2024-08-01 11:59:28,256 [ProcExecWorker-1] INFO  o.a.i.c.p.i.p.r.PipeMetaSyncProcedure:73 - PipeMetaSyncProcedure: executeFromOperateOnDataNodes 
2024-08-01 11:59:28,279 [ProcExecWorker-1] INFO  o.a.i.c.p.i.n.AbstractNodeProcedure:54 - procedureId 1 release lock. 
2024-08-01 11:59:28,279 [ProcExecWorker-1] INFO  o.a.i.c.p.i.p.AbstractOperatePipeProcedureV2:149 - ProcedureId 1 release lock. Pipe lock will be released. 
2024-08-01 11:59:28,279 [ProcExecWorker-1] INFO  o.a.i.c.m.p.c.t.PipeTaskCoordinatorLock:97 - PipeTaskCoordinator lock (id: 2) released by thread ProcExecWorker-1 
2024-08-01 11:59:28,485 [pool-5-IoTDB-Pipe-Runtime-Meta-Syncer-1] INFO  o.a.i.c.m.p.c.r.PipeMetaSyncer:140 - After this successful sync, if PipeTaskInfo is empty during this sync and has not been modified afterwards, all subsequent syncs will be skipped 
2024-08-01 12:56:27,093 [pool-11-IoTDB-Activation-Service-2] WARN  o.a.i.c.m.a.ActivationManager:365 - License has not been set, and this ConfigNode currently not connects to any active ConfigNode. Cluster is readonly now. Contact Timecho for more information. 
  • /activation目录下面会出现system_info文件,该文件包含你这台服务器的及其信息,将该文件发送给天谋科技的工程师。
    在这里插入图片描述
  • 天谋科技的工程师通过system_info文件生成license证书。
  • 我们拿到license证书文件,将该上传到\activation目录下即可。
    在这里插入图片描述

五、启动

  • iotdb-enterprise-1.3.1.4-bin目录下面执行命令

bash sbin/start-standalone.sh

[root@iZgw0bdpdtyqxyz77dha9nZ iotdb-enterprise-1.3.1.4-bin]# bash sbin/start-standalone.sh 
Execute start-standalone.sh finished, you can see more details in the logs of confignode and datanode
  • 查询端口是否正常开启,默认6667端口和10710端口。

netstat -nplt

[root@iZgw0bdpdtyqxyz77dha9nZ iotdb-enterprise-1.3.1.4-bin]# netstat -nplt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp6       0      0 127.0.0.1:10760         :::*                    LISTEN      26788/java          
tcp6       0      0 127.0.0.1:10730         :::*                    LISTEN      26788/java         
tcp6       0      0 :::6667                 :::*                    LISTEN      26788/java        
tcp6       0      0 127.0.0.1:10740         :::*                    LISTEN      26788/java          
tcp6       0      0 127.0.0.1:10710         :::*                    LISTEN      26268/java   
tcp6       0      0 :::10750                :::*                    LISTEN      26788/java          
tcp6       0      0 :::10720                :::*                    LISTEN      26268/java    

在这里插入图片描述

六、连接

  • 连接数据库,默认账号:root,默认密码:root。

bash sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root

[root@iZgw0bdpdtyqxyz77dha9nZ iotdb-enterprise-1.3.1.4-bin]# bash sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root
---------------------
Starting IoTDB Cli
---------------------
 _____       _________  ______   ______    
|_   _|     |  _   _  ||_   _ `.|_   _ \   
  | |   .--.|_/ | | \_|  | | `. \ | |_) |  
  | | / .'`\ \  | |      | |  | | |  __'.  
 _| |_| \__. | _| |_    _| |_.' /_| |__) | 
|_____|'.__.' |_____|  |______.'|_______/  Enterprise version 1.3.1.4 (Build: 9658c9d)
                                           

Successfully login at 127.0.0.1:6667
IoTDB> exit

七、停止

bash sbin/stop-standalone.sh

[root@iZgw0bdpdtyqxyz77dha9nZ iotdb-enterprise-1.3.1.4-bin]# bash sbin/stop-standalone.sh
Check whether the internal_port is used..., port is 10710
Stop ConfigNode, PID: 26268
Check whether the rpc_port is used..., port is 6667
Stop DataNode, PID: 26788

八、IoTDB-Workbench

IoTDB-Workbench是IoTDB时序数据库的可视化控制台。

  • iotdb-workbench-1.2.2目录下面执行命令,默认是前台启动

bash sbin/start.sh

[root@iZgw0bdpdtyqxyz77dha9nZ iotdb-workbench-1.2.2]# bash sbin/start.sh 
----------------------------
Starting IoTDB Workbench
----------------------------
Checking whether the ports are already occupied


  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::               (v2.7.12)

2024-08-01 19:22:23,240 [background-preinit] INFO  o.h.v.i.util.Version:21 - HV000001: Hibernate Validator 6.2.5.Final 
2024-08-01 19:22:23,258 [main] INFO  o.s.b.StartupInfoLogger:55 - Starting Application using Java 1.8.0_401 on iZgw0bdpdtyqxyz77dha9nZ with PID 28137 (/home/iotdb-workbench-1.2.2/iotdb-workbench.jar started by root in /home/iotdb-workbench-1.2.2) 
2024-08-01 19:22:23,259 [main] INFO  o.s.b.SpringApplication:637 - The following 1 profile is active: "prod" 
2024-08-01 19:22:24,917 [main] WARN  o.mybatis.logging.Logger:44 - Skipping MapperFactoryBean with name 'alarmTraceMapper' and 'com.timecho.iotdbrealtime.mapper.AlarmTraceMapper' mapperInterface. Bean already defined with the same name! 
2024-08-01 19:22:24,918 [main] WARN  o.mybatis.logging.Logger:44 - Skipping MapperFactoryBean with name 'connectionMapper' and 'com.timecho.iotdbrealtime.mapper.ConnectionMapper' mapperInterface. Bean already defined with the same name! 
2024-08-01 19:22:24,918 [main] WARN  o.mybatis.logging.Logger:44 - Skipping MapperFactoryBean with name 'alarmConfigLogMapper' and 'com.timecho.iotdbrealtime.mapper.AlarmConfigLogMapper' mapperInterface. Bean already defined with the same name! 
2024-08-01 19:22:24,918 [main] WARN  o.mybatis.logging.Logger:44 - Skipping MapperFactoryBean with name 'alarmConfigMapper' and 'com.timecho.iotdbrealtime.mapper.AlarmConfigMapper' mapperInterface. Bean already defined with the same name! 
2024-08-01 19:22:24,919 [main] WARN  o.mybatis.logging.Logger:44 - Skipping MapperFactoryBean with name 'alarmRecordMapper' and 'com.timecho.iotdbrealtime.mapper.AlarmRecordMapper' mapperInterface. Bean already defined with the same name! 
2024-08-01 19:22:24,919 [main] WARN  o.mybatis.logging.Logger:44 - Skipping MapperFactoryBean with name 'queryMapper' and 'com.timecho.iotdbrealtime.mapper.QueryMapper' mapperInterface. Bean already defined with the same name! 
2024-08-01 19:22:24,919 [main] WARN  o.mybatis.logging.Logger:44 - No MyBatis mapper was found in '[com.timecho.iotdbrealtime.mapper]' package. Please check your configuration. 
2024-08-01 19:22:25,154 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker:376 - Bean 'com.thebeastshop.forest.springboot.ForestAutoConfiguration' of type [com.thebeastshop.forest.springboot.ForestAutoConfiguration$$EnhancerBySpringCGLIB$$7e309673] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 
2024-08-01 19:22:25,458 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker:376 - Bean 'forestConfigurationProperties' of type [com.thebeastshop.forest.springboot.properties.ForestConfigurationProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 
2024-08-01 19:22:25,741 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker:376 - Bean '(inner bean)#77f80c04' of type [com.dtflys.forest.interceptor.SpringInterceptorFactory] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 
2024-08-01 19:22:25,744 [main] INFO  o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker:376 - Bean 'forestConfiguration' of type [com.dtflys.forest.config.ForestConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 
2024-08-01 19:22:25,754 [main] INFO  c.d.f.s.ClassPathClientScanner:87 - [Forest] Created Forest Client Bean with name 'requestClient' and Proxy of 'com.timecho.iotdbrealtime.request.RequestClient' client interface 
2024-08-01 19:22:26,043 [main] INFO  o.s.b.w.e.t.TomcatWebServer:108 - Tomcat initialized with port(s): 9190 (http) 
2024-08-01 19:22:26,056 [main] INFO  o.a.j.l.DirectJDKLog:173 - Initializing ProtocolHandler ["http-nio-9190"] 
2024-08-01 19:22:26,057 [main] INFO  o.a.j.l.DirectJDKLog:173 - Starting service [Tomcat] 
2024-08-01 19:22:26,057 [main] INFO  o.a.j.l.DirectJDKLog:173 - Starting Servlet engine: [Apache Tomcat/9.0.75] 
2024-08-01 19:22:26,198 [main] INFO  o.a.j.l.DirectJDKLog:173 - Initializing Spring embedded WebApplicationContext 
2024-08-01 19:22:26,199 [main] INFO  o.s.b.w.s.c.ServletWebServerApplicationContext:292 - Root WebApplicationContext: initialization completed in 2823 ms 
2024-08-01 19:22:26,453 [main] INFO  c.a.d.s.b.a.DruidDataSourceAutoConfigure:55 - Init DruidDataSource 
2024-08-01 19:22:26,960 [main] INFO  c.a.d.p.DruidDataSource:1010 - {dataSource-1} inited 
 _ _   |_  _ _|_. ___ _ |    _ 
| | |\/|_)(_| | |_\  |_)||_|_\ 
     /               |         
                        3.5.3.1 
2024-08-01 19:22:28,353 [main] INFO  o.s.b.a.w.s.WelcomePageHandlerMapping:58 - Adding welcome page template: index 
2024-08-01 19:22:29,512 [main] INFO  o.a.j.l.DirectJDKLog:173 - Starting ProtocolHandler ["http-nio-9190"] 
2024-08-01 19:22:29,535 [main] INFO  o.s.b.w.e.t.TomcatWebServer:220 - Tomcat started on port(s): 9190 (http) with context path '' 
2024-08-01 19:22:29,544 [main] INFO  o.s.s.a.ScheduledAnnotationBeanPostProcessor:315 - No TaskScheduler/ScheduledExecutorService bean found for scheduled processing 
2024-08-01 19:22:29,553 [main] INFO  o.s.b.StartupInfoLogger:61 - Started Application in 7.117 seconds (JVM running for 8.046) 
  • 也可以后台启动

bash sbin/start.sh -d

[root@iZgw0bdpdtyqxyz77dha9nZ iotdb-workbench-1.2.2]# bash sbin/start.sh -d
----------------------------
Starting IoTDB Workbench
----------------------------
Checking whether the ports are already occupied

IoTDB Workbench start successful
  • 查询服务端口是9190

netstat -nplt

[root@iZgw0bdpdtyqxyz77dha9nZ iotdb-enterprise-1.3.1.4-bin]# netstat -nplt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:8098            0.0.0.0:*               LISTEN      24036/docker-proxy  
tcp        0      0 0.0.0.0:8099            0.0.0.0:*               LISTEN      24016/docker-proxy  
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      32619/redis-server  
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      618/rpcbind         
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      12579/nginx: worker 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1097/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1044/master         
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      12579/nginx: worker 
tcp6       0      0 :::8098                 :::*                    LISTEN      24043/docker-proxy  
tcp6       0      0 :::8099                 :::*                    LISTEN      24023/docker-proxy  
tcp6       0      0 :::33060                :::*                    LISTEN      17333/mysqld        
tcp6       0      0 :::9190                 :::*                    LISTEN      28137/java          
tcp6       0      0 :::8070                 :::*                    LISTEN      15219/java          
tcp6       0      0 127.0.0.1:10760         :::*                    LISTEN      28557/java          
tcp6       0      0 127.0.0.1:10730         :::*                    LISTEN      28557/java          
tcp6       0      0 :::3306                 :::*                    LISTEN      17333/mysqld        
tcp6       0      0 :::6667                 :::*                    LISTEN      28557/java          
tcp6       0      0 ::1:6379                :::*                    LISTEN      32619/redis-server  
tcp6       0      0 :::111                  :::*                    LISTEN      618/rpcbind         
tcp6       0      0 127.0.0.1:10740         :::*                    LISTEN      28557/java          
tcp6       0      0 127.0.0.1:10710         :::*                    LISTEN      28409/java          
tcp6       0      0 :::8089                 :::*                    LISTEN      30508/influxd-meta  
tcp6       0      0 ::1:25                  :::*                    LISTEN      1044/master         
tcp6       0      0 :::8091                 :::*                    LISTEN      30508/influxd-meta  
tcp6       0      0 :::10750                :::*                    LISTEN      28557/java          
tcp6       0      0 :::10720                :::*                    LISTEN      28409/java      
  • 记得在服务器安全组上要开放IoTDB-Workbanche服务的端口

在这里插入图片描述

觉得好,就一键三连呗(点赞+收藏+关注)

标签:INFO,01,08,入门教程,2024,TimechoDB,IoTDB,main,LISTEN
From: https://blog.csdn.net/kangweijian/article/details/140852608

相关文章

  • Python基础教程(入门教程),30分钟玩转Python编程!
    这是一篇针对初学者的 Python基础教程,只要你认真阅读,花费30分钟即可快速了解Python。这篇Python入门教程讲解的知识点包括:Python编程环境的搭建、Python基本操作入门、Python数据类型、Python语句和函数。Python环境下载和配置根据Windows版本(64位/32位)从Pyt......
  • 网络安全入门教程(非常详细)从零基础入门到精通_网路安全 教程
    前言1.入行网络安全这是一条坚持的道路,三分钟的热情可以放弃往下看了。2.多练多想,不要离开了教程什么都不会了,最好看完教程自己独立完成技术方面的开发。3.有时多百度,我们往往都遇不到好心的大神,谁会无聊天天给你做解答。4.遇到实在搞不懂的,可以先放放,以后再来解决。先科普......
  • 网络安全入门教程(非常详细)从零基础入门到精通_网路安全 教程
    前言1.入行网络安全这是一条坚持的道路,三分钟的热情可以放弃往下看了。2.多练多想,不要离开了教程什么都不会了,最好看完教程自己独立完成技术方面的开发。3.有时多百度,我们往往都遇不到好心的大神,谁会无聊天天给你做解答。4.遇到实在搞不懂的,可以先放放,以后再来解决。先科普......
  • 网络安全入门教程(非常详细)从零基础入门到精通_网路安全 教程
    前言1.入行网络安全这是一条坚持的道路,三分钟的热情可以放弃往下看了。2.多练多想,不要离开了教程什么都不会了,最好看完教程自己独立完成技术方面的开发。3.有时多百度,我们往往都遇不到好心的大神,谁会无聊天天给你做解答。4.遇到实在搞不懂的,可以先放放,以后再来解决。先科普......
  • CTF入门教程(非常详细)从零基础入门到竞赛,看这一篇就够了!
    一、CTF简介CTF(CaptureTheFlag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形......
  • CTF入门教程(非常详细)从零基础入门到竞赛,看这一篇就够了!
    一、CTF简介CTF(CaptureTheFlag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形......
  • stable diffusion 入门教程
    sd基础工作原理&入门输入提示词后有文本编码器将提示词编译成特征向量,vae编码器将特征向量传入潜空间内,特征向量在潜空间内不断降噪,最后通过vae解码器将降噪之后的特征向量解码成一个个像素组成的图片一般选中默认vae模型解码编码的模型CLIP值越大,提前停止的越快,我们提......
  • 网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇就够了。
    学前感言:1.这是一条坚持的道路,三分钟的热情可以放弃往下看了.2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发.3.有时多google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答.4.遇到实在搞不懂的,可以先放放,以后再来解决.基......
  • 软路由新手入门教程(从概念-选型-接线-安装)
    1、软路由、硬路由概念介绍硬路由通俗介绍:目前我们上网使用的路由器就是“硬”路由,他是厂商提供了一套完整的定制的软件+硬件的解决方案,包含刷好的系统(固件)、电源、路由器机器。常见的路由器有:华为、小米、TP-LINK。如下图。 软路由官方介绍:软路由是指利用台式机或服务......
  • 黑客入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
    想要成为黑客,却苦于没有方向,不知道从何学起,下面这篇黑客入门教程可以帮你实现自己的黑客梦想,如果想学,可以继续看下去,文章有点长,希望你可以耐心看到最后 1、Web安全相关概念(2周)·熟悉基本概念(SQL注入、上传、XSS、、CSRF、一句话木马等)。通过关键字(SOL注入、上传、XSSC......