文章目录
一、准备工作
1. 领取阿里云服务器
2. 服务器初始设置
2.1 设置实例密码
2.2 远程登录云服务器
2.3 修改云服务器密码
2.4 实现自动远程连接
二、部署服务器
1. 安装mariadb(数据库)
2. 安装Nginx
3. 开启端口
3.1 开启阿里云安全组端口
3.2 开启服务器防火墙端口
三、四种动态开发语言读取mysql数据
1. Go
2. nodejs
2.1 安装Nodejs
2.2 实现用nodejs读取mysql并显示在网页上
2.3 nginx配置
3.python
3.1 在pycharm中建flask项目
3.2 在项目中建立与云服务器连接
3.3 实现用python读取mysql并显示在网页上
4.php
4.1 php的安装配置
4.2 配置Nginx,测试访问PHP
4.4 实现用PHP读取mysql并显示在网页上
一、准备工作
1. 领取阿里云服务器
免费使用一个月ECS共享性n4
购买页面中主要注意的是操作系统,选择自己的操作系统即可。
如何查看Centos系统版本命令
[ root@localhost ~ ] # cat / etc/ redhat- release
2. 服务器初始设置
2.1 设置实例密码
如果找不到这个页面,后面的找不到控制台页面
有说明
2.1.1 找不到控制台页面
如果你现在在这个页面中:阿里云控制台首页 往下滑找到云产品推荐,点击云服务器ESC 进入新页面后,点击管理控制台即可找到云服务器。
2.2 远程登录云服务器
在本地终端运行ssh userName@hostIP远程登录云服务器。userName为云服务器用户名,默认是root
,@符号后接云服务器的公网IP
地址。(是公网IP,不是内网IP。)
[ root@localhost ~ ] # ssh root@xxx. xx. xxx. xx
2.3 修改云服务器密码
密码太难记?登录完云服务器后可执行passwd命令修改密码
[ root@root ~ ] # passwd
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
2.4 实现自动远程连接
若使用的终端应用是termius
,为了不用每次都要手动远程连接和方便传文件,我们可以创建一个newHost
填上相应信息
往下滑,找到SSH Agent Forwarding 选择你要远程连接的Host,之后只需虚拟机上登录Host的用户账号,终端就可以直接连接newHost以实现远程连接了。
二、部署服务器
1. 安装mariadb(数据库)
由于CentOS7不支持MySQL了,而内部集成了mariadb。安装MySQL的话会和MariaDB的文件冲突,所以直接安装mariadb即可。如果安装过mysql的要删干净才可以下载安装mariadb,可通过这个链接查看是否安装本地mysql
-安装mariadb-server
[ root@root ~ ] # yum install - y mariadb- server
若安装中出现了获取 GPG 密钥失败,需要重新获取
GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/
rpm-gpg/RPM-GPG-KEY-mysql-2022"
运行以下命令
[root@root ~]# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
再重新安装mariadb-server
[ root@root ~ ] # yum install - y mariadb- server
启动服务
[ root@root ~ ] # systemctl start mariadb. service
查看mariadb运行状态
[ root@root ~ ] # systemctl status mariadb. service
添加到开机启动
[ root@root ~ ] # systemctl enable mariadb. service
安全设置,修改数据库管理员密码
[ root@root ~ ] # mysql_secure_installation
Set root password? [ Y/ n] Y
New password:
Re- enter new password:
Remove anonymous users? [ Y/ n] Y
Disallow root login remotely? [ Y/ n] n
Remove test database and access to it? [ Y/ n] Y
Reload privilege tables now? [ Y/ n] Y
1.1 解决数据库乱码问题
配置MariaDB字符编码。
[ root@root ~ ] # vi / etc/ my. cnf
#添加以下内容
[ mysqld]
character- set- server= utf8
[ client]
default - character- set= utf8
[ mysql]
default - character- set= utf8
[ mysql. server]
default - character- set = utf8
重启mariadb
[ root@root ~ ] # systemctl restart mariadb
1.2 数据库建表
[ root@root ~ ] # mysql - u root - p
Enter password:
MariaDB [ ( none) ] > CREATE DATABASE test;
MariaDB [ ( none) ] > use test
MariaDB [ test] > CREATE TABLE students (
stuId VARCHAR ( 12 ) NOT NULL ,
stuName VARCHAR ( 50 ) NOT NULL ,
PRIMARY KEY ( stuId)
) ;
可以用show tables;
命令查看创建表格是否成功。
MariaDB [ test] > show tables;
插入数据到students表中
MariaDB [ test] > INSERT INTO students VALUES ( "yourStuID" , "yourName" ) ;
查看students表是否正确插入数据
MariaDB [ test] > SELECT * FROM students;
ctrl+c退出MariaDB。
2. 安装Nginx
安装nginx
[ root@root ~ ] # yum list nginx*
[ root@root ~ ] # yum install - y nginx. x86_64
配置nginx
[ root@root ~ ] # vim / etc/ nginx/ nginx. conf
#在http里的server里添加
location ~ \. php$ {
root / usr/ share/ nginx/ html;
fastcgi_pass 127.0 .0 .1 : 9000 ; #php- fpm默认的端口是9000
fastcgi_index index. php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ \. go$ {
proxy_pass http:
}
location ~ \. js$ {
proxy_pass http:
}
location index. py {
proxy_pass http:
}
运行nginx,并查看状态
[ root@root ~ ] # service nginx restart
[ root@root ~ ] # systemctl status nginx
3. 开启端口
端口
描述
80
htpp、nginx
8000
测试go端口
8001
测试nodejs端口
8800
测试python端口
9000
php-fpm,php
3.1 开启阿里云安全组端口
进去后表格右上角,点击添加安全组规则,把5个端口都给加上。其中一个示例:
3.2 开启服务器防火墙端口
[ root@root ~ ] # service firewalld start
[ root@root ~ ] # systemctl status firewalld #查看开启防火墙是否成功
[ root@root ~ ] # firewall- cmd -- zone= public -- add- port= 80 / tcp -- permanent
[ root@root ~ ] # firewall- cmd -- zone= public -- add- port= 8000 / tcp -- permanent
[ root@root ~ ] # firewall- cmd -- zone= public -- add- port= 8001 / tcp -- permanent
[ root@root ~ ] # firewall- cmd -- zone= public -- add- port= 8800 / tcp -- permanent
[ root@root ~ ] # firewall- cmd -- zone= public -- add- port= 9000 / tcp -- permanent
[ root@root ~ ] # service firewalld restart #重启防火墙,不然不生效
[ root@root ~ ] # firewall- cmd -- list- ports #查看开放的端口
80 / tcp 8000 / tcp 8001 / tcp 8800 / tcp 9000 / tcp
三、四种动态开发语言读取mysql数据
1. Go
这个博客写的很详细:Linux实验:Golang+MySQL部署Web环境 只要将博客里的9090端口改为8000就可以了。
2. nodejs
2.1 安装Nodejs
[ root@root ~ ] # sudo yum install epel- release
[ root@root ~ ] # sudo yum install nodejs
[ root@root ~ ] # node -- version
#安装npm
[ root@root ~ ] # cd / root/ myLinuxTest/ nodejs
[ root@root nodejs] # sudo yum install npm -- enablerepo= epel
[ root@root nodejs] # sudo npm install - g express
[ root@root nodejs] # sudo npm install - g express- generator
[ root@root nodejs] # npm install mysql
2.2 实现用nodejs读取mysql并显示在网页上
[ root@root ~ ] # vim / root/ myLinuxTest/ nodejs/ index. js
var http= require ( 'http' ) ;
var url= require ( 'url' ) ;
var mysql= require ( 'mysql' ) ;
var connection = mysql. createConnection ( {
host : 'localhost',
user : 'root' ,
password : 'xxxxxx' ,
port : '3306' ,
database : 'test'
} ) ;
var sql = 'select * from student';
server = http. createServer ( function ( request, response) {
response. writeHead ( 200 , { 'Content - Type ': ' text/ html'} ) ;
connection. query ( sql, function ( err, result) {
if ( err) {
console. log ( '[ select error] - ', err. message) ;
return ;
}
response. write (
'< ! DOCTYPE html> '+
'< html lang= "en" > '+
'' +
'< meta charset= "utf-8" / > '+
'< / head> ') ;
response. write ( "这是Nodejs页面" ) ;
response. write ( "") ;
response. write ( " 学号 ") ;
response. write ( " 姓名 ") ;
result. forEach ( r = > {
response. write ( "") ;
response. write ( " "+ r. stuId+ " ") ;
response. write ( " "+ r. stuName+ " ") ;
response. write ( " " ) ;
} )
response. end ( ) ;
} ) ;
} ) ;
server. listen ( 8001 ) ;
2.3 nginx配置
[ root@wu2 ~ ] # vim / etc/ nginx/ nginx. conf # 增加下方配置。
location ~ / index. js$ {
proxy_pass http: / / 127.0 .0 .1 : 8001 ;
}
[ root@root ~ ] # service nginx restart
此时,可以用 http://ip/index.js 访问。
使nodejs项目在服务器上后台运行
[ root@root ~ ] # nohup node / root/ myLinuxTest/ nodejs/ index. js &
3.python
3.1 在pycharm中建flask项目
3.2 在项目中建立与云服务器连接
随便定义一个名字 ok~然后 这样就设置好啦,这里能远程看到linux
3.3 实现用python读取mysql并显示在网页上
import sys
reload ( sys)
sys. setdefaultencoding( 'utf-8' )
from flask import Flask
app = Flask( __name__)
import mysql. connector
@app. route ( '/' )
def hello_world ( ) :
mydb = mysql. connector. connect(
host= "localhost" ,
user= "用户名" ,
passwd= "密码" ,
database= "数据库名"
)
mycursor = mydb. cursor( )
result = mycursor. execute( "select * from 表名" )
str = "这是python页面 学号 姓名 "
for x in mycursor:
str += "" + x[ 0 ] + " " + x[ 1 ] + " "
str += "
"
return str
if __name__ == '__main__' :
app. run( host= "0.0.0.0" , port= 8800 , debug= True )
这里将项目文件上传到linux上 访问http://ip:8800/即可
使python项目在服务器上后台运行
[ root@root python] # python - V
Python 2.7 .5
[ root@root python] # nohup python2. 7 - u / root/ python/ app. py &
4.php
4.1 php的安装配置
[ root@root ~ ] # mkdir / opt/ php
[ root@root ~ ] # cd / opt/ php
[ root@root php] # wget https:
[ root@root php] # yum install - y gcc gcc- c++ make zlib zlib- devel pcre pcre- devel libjpeg libjpeg- devel libpng libpng- devel freetype freetype- devel libxml2 libxml2- devel glibc glibc- devel glib2 glib2- devel bzip2 bzip2- devel ncurses ncurses- devel curl curl- devel e2fsprogs e2fsprogs- devel krb5 krb5- devel openssl openssl- devel openldap openldap- devel nss_ldap openldap- clients openldap- servers libsqlite3x- devel oniguruma- devel
[ root@root php] # tar - zxvf php- 7.4 .5 . tar. gz
[ root@root php] # cd php- 7.4 .5
[ root@root php- 7.4 .5 ] # . / configure -- prefix= / usr/ local/ php -- with- config- file- path= / usr/ local/ php -- enable- mbstring -- enable- ftp -- enable- gd -- with- mysqli= mysqlnd -- with- pdo- mysql= mysqlnd -- without- pear -- disable- phar -- enable- sockets -- with- zlib -- with- xmlrpc -- enable- fpm -- enable- xml -- enable- sockets -- with- zlib -- with- iconv -- enable- soap -- enable- pcntl -- enable- cli -- with- curl
[ root@root php- 7.4 .5 ] # make
[ root@root php- 7.4 .5 ] # make install
[ root@root php- 7.4 .5 ] # cp php. ini- production / usr/ local/ php/ php. ini
[ root@root php- 7.4 .5 ] # vim / usr/ local/ php/ php. ini
display_errors = On # Off改为On。设置让PHP错误信息打印在页面上
[ root@root php- 7.4 .5 ] # cp sapi/ fpm/ init. d. php- fpm / etc/ init. d/ php- fpm
[ root@root php- 7.4 .5 ] # chmod + x / etc/ init. d/ php- fpm
[ root@root php- 7.4 .5 ] # cd / usr/ local/ php/ etc
[ root@root etc] # cp php- fpm. conf. default php- fpm. conf
[ root@root etc] # vi php- fpm. conf
去掉 ";pid = run/php-fpm.pid" 前面的分号
[ root@root etc] # cd php- fpm. d
[ root@root php- fpm. d] # cp www. conf. default www. conf
[ root@root php- fpm. d] # vi www. conf # 修改user和group为php。
user = php
group = php
[ root@root php- fpm. d] # groupadd php
[ root@root php- fpm. d] # useradd - r - g php php
[ root@root php- fpm. d] # chkconfig php- fpm on # 设置开启启动
[ root@root php- fpm. d] # cd ~
[ root@root ~ ] # / etc/ init. d/ php- fpm star
4.2 配置Nginx,测试访问PHP
[ root@root ~ ] # vim / usr/ share/ nginx/ html/ index. php # 写入如下内容
< ? php
phpinfo ( ) ;
? >
[ root@root ~ ] # vim / etc/ nginx/ nginx. conf
#添加以下内容
location / {
root / usr/ share/ nginx/ html;
index index. php;
}
location ~ \. php$ {
# root html;
root / usr/ share/ nginx/ html;
fastcgi_pass 127.0 .0 .1 : 9000 ; #php- fpm默认的端口是9000
fastcgi_index index. php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
[ root@wu2 ~ ] # service nginx restart
配置后,使用ip
、云服务器公网ip/index.php
可访问以下页面 ip/index.html
可以访问到下方页面。
4.4 实现用PHP读取mysql并显示在网页上
[ root@root ~ ] # vim / usr/ share/ nginx/ html/ index. php # 删除原先内容,改为以下内容。
< ? php
$mysql_server_name = '127.0.0.1' ;
$mysql_username = 'root' ;
$mysql_password = '66666' ;
$mysql_database = 'test' ;
$conn= mysqli_connect ( $mysql_server_name, $mysql_username, $mysql_password, $mysql_database) ;
if ( $conn -> connect_errno) {
printf ( "Connect failed: %s\n" , $conn-> connect_error) ;
exit ( ) ;
}
$sql = "select * from student" ;
$query = $conn-> query ( $sql) ;
echo "这是PHP页面" ;
echo "";
echo " 学号 ";
echo " 姓名 ";
echo " ";
while ( $row = $query-> fetch_array ( ) ) {
echo "";
echo " ". $row[ 'stuId' ] . " ";
echo " ". $row[ 'stuName' ] . " ";
echo " " ;
}
$query -> free_result ( ) ;
$conn -> close ( ) ;
? >
保存后访问http://ip/index.php,
使php项目在服务器上后台运行
[ root@root ~ ] # nohup php / usr/ share/ nginx/ html/ index. php &
你可能感兴趣的:(linux,mysql,linux,golang,python,php)
第五章 序列
MPCTHU
python python
在数学领域里,序列也称为数列,是一列有序的数。在程序设计中,序列是一类数据结构,用来存储一组有序排列的元素,并提供各种读写操作接口。5.1认识序列在python中,序列主要包括列表list,元组tuple,对象range、字符串str、字节串bytes、字节数组bytearray。大多数序列类型,包括可变类型和不可变类型支持下表的通用操作5.2操作序列5.2.1索引序列是以非负整数作为索引的有限有
【Python】Python与C的区别(超详细总结)
Reese_Cool
Python python c语言 java
文章目录语句结束符代码块表示变量声明函数定义注释格式Python的标识符数据输入input()函数数据输出print()函数语句结束符C语言C语言中每条语句必须以分号;结束。例如,inta=10;、printf("Hello,World!");。分号是语句的一部分,用于告诉编译器一条语句在哪里结束。如果忘记添加分号,编译器会报错,提示语法错误。Python语言Python语句一般不需要特定的结束符
Selenium 对页面元素的操作动作及其语法
静静在思考
# Selenium selenium 测试工具
Selenium提供了丰富的操作动作,用于模拟用户在浏览器中的各种交互行为。以下为你详细介绍常见操作动作及其语法,并结合百度网站为例给出Python代码示例。1.打开网页语法:使用driver.get(url)方法,其中driver是浏览器驱动实例,url是要打开的网页地址。示例代码:fromseleniumimportwebdriverdriver=webdriver.Chrome()drive
Python教学-最常用的标准库之一——OS库
懒大王爱吃狼
python python 服务器 开发语言 Python基础 python学习 python爬虫
os库是Python标准库中的一个模块,它提供了一种方便的方式来使用操作系统相关的功能。os模块提供了很多函数,可以用来处理文件和目录、访问环境变量、执行系统命令等。以下是一些常用的os模块的功能和示例:1.文件和目录操作1.1当前工作目录os.getcwd():获取当前工作目录。os.chdir(path):改变当前工作目录。importoscurrent_dir=os.getcwd()prin
智能图像处理平台:技术融合与实践的结晶
顾北辰20
智能图像处理平台 图像处理 人工智能
目录项目目标项目功能用户模块图像处理模块异步任务模块技术栈数据库设计核心功能实现方式图片上传图片处理异步任务项目扩展近日DeepSeek很火,我让他给我出了个小项目练练手,带大家一起做一下,可做为毕业设计参考。在当今数字化时代,图像处理技术广泛应用于各个领域,从医学影像到社交媒体,其重要性不言而喻。本文将介绍一个智能图像处理平台的练手项目,旨在巩固Java、MySQL、SpringBoot、Red
LeetCode--------接雨水python
newica
LeetCode
题目不重述了。小菜一枚,思路还是比较欠缺,按照leetcode题解的精选,用python写了一下。加深理解吧。按行接雨水:思路:首先寻找数组的最大值,即最多一共有几行。然后分别求每一行的雨水量。从第一行开始,第一种情况是遇到比第一行低的块,可以存到一方水;第二种情况是遇到和第一行一样高或者比第一行要高的块,重新开始计算雨水量。直到最高行,雨水量计算完毕。思路比较清晰,可以看力扣官网题解精选有图。p
python tkinter 自制文本编辑器
ocean35
tkinter python 文本编辑器 tkinter python
成品如图:代码fromtkinterimport*fromtkinterimportfiledialogfromtkinterimportmessageboximporttimedefnodefined():pass#打开文件函数defopenfile():filename=filedialog.askopenfilename()f=open(filename,'r')f2=f.read()f.c
【Linux】【网络】Reactor模式
钟离墨笺
Linux linux 网络 java
【Linux】【网络】Reactor模式1.Reactor模式:Reactor模式是一种事件驱动的设计模式,同步I/O通常用于设置Reactor模式主线程(I/0处理单元,下同)只负责监听文件描述上是否有事件发生,有的话就立即将该事件通知工作线程(逻辑单元,下同)。除此之外,主线程不做任何其他实质性的工作。读写数据,接受新的连接,以及处理客户请求均在工作线程中完成。使用同步I/O模型(以epoll
Linux 固定 IP 地址和网关
法号:行颠
Linux linux
Linux固定IP地址和网关查看IPifconfigifconfigeth0ipaddripaddrshoweth0查看网关iprouteshowroute-nnetstat-rn设置固定IP//配置静态IP文件/etc/network/interfaces$vi/etc/network/interfacesautoeth0ifaceeth0inetstaticaddress192.168.0.2
百万架构师第三十九课:RabbitMq:Linux安装RabbitMq|JavaGuide
后端
来源:https://javaguide.netRPM包安装RabbitMQRabbitMQ的安装非常简单,由于RabbitMQ依赖于Erlang,所以需要先安装Erlang,解决依赖关系后,就可以安装RabbitMQ了。注意,在安装Erlang前,需要先安装socat安装socat[root@nogeek]#yum-yinstallsocat下载RPM包RabbitMQ:http://www.r
Java 基于 SpringBoot+Vue 的动漫平台(附源码,文档)
程序员徐师兄
java spring boot vue.js 动漫平台 动漫网站
博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝12w+、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战*✌文末获取源码联系精彩专栏推荐订阅不然下次找不到哟2022-2024年最全的计算机软件毕业设计选题大全:1000个热门选题推荐✅Java项目精品实战案例《500套》Java微信小程序项目实战《200套》Python项目实战《200套
Hive中文乱码解决方法
快乐骑行^_^
大数据 大数据平台二次开发
Hive中文乱码解决方法一、Hive中文乱码原因二、Hive中文乱码解决方法三、修改hive配置文件四、再次查看表信息,中文注释正常一、Hive中文乱码原因hive的元数据是由mysql管理的,mysql默认编码是latin1,中文存储进去容易乱码,所以最好把mysql的编码改成utf-8二、Hive中文乱码解决方法需要把相应注释的地方的字符集由latin1改成utf-8,用到注释的就三个地方,表
python Kivy SDL2报错: Unable to load image
岁月缱绻浮半生
pythonKivySDL2报错:Unabletoloadimage国内玩kivy的真的很少,教程也少。断断续续弄了两天,终于弄好了首先看一下我的报错[INFO][Logger]RecordloginC:\Users\AlucaRd\.kivy\logs\kivy_20-12-15_11.txt[INFO][deps]Successfullyimported"kivy_deps.gstreamer
1、Android概述
守望178
Android
安卓(Android)是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由AndyRubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以
成功解决 python+kivy的raise Exception(‘SDL2: Unable to load image‘) Unable to get a Window, abort.
projectnone2019
python 开发语言 后端
运行python+kivy一个小程序出错,代码如下:fromkivy.appimportAppfromkivy.uix.floatlayoutimportFloatLayoutclassSizeFloat(FloatLayout):def__init__(self,**kwargs):super().__init__(**kwargs)classSizeApp(App):defbuild(self
pytorch环境配置过程中遇到的那些坑
枕绵
pytorch 人工智能 python conda
基本命令查看conda版本conda--version查看conda环境配置condaconfig--show创建虚拟环境condacreate-nenvNamepython=3.8查看虚拟环境的个数详情condaenvlist激活虚拟环境condaactivateenvName删除虚拟环境condaremove--nameenvName--all下载pytorchpip3installtorch
Linux内核中的双向链表list_head
ioriwc
linux 链表 运维
双向链表在Linux内核中使用非常多,它是内核各种队列、栈的基础,相关的结构定义和函数均在include/linux/list.h中定义,下面介绍下其原理及使用方法。1、结构体定义structlist_head{structlist_head*next,*prev;};双向链表结构体很简单,有prev和next两个指针,分别指向链表的前一节点和后一节点。这里专门讲下空链表,空链表指链表的prev和
Alpine 安装 应用错误 ERROR: unable to select packages
seojava
linux 运维 服务器
/#apkaddcurlfetchhttps://dl-cdn.alpinelinux.org/alpine/v3.19/community/x86_64/x86_64/APKINDEX.tar.gzWARNING:updatingandopeninghttps://dl-cdn.alpinelinux.org/alpine/v3.19/community/x86_64/:Nosuchfileor
全面了解 Node.js、npm、yarn、node-gyp、Python、Visual Studio 和 Electron 的关联性
古木12345
node.js npm python electron yarn
好的,以下是一个全面且深入的详细解析,针对Electron桌面开发工具链及其相关依赖,包含每个关键模块(Node.js、npm、yarn、Python、node-gyp、VisualStudio、Electron)及其实现原理、功能、关联性和使用示例,确保您能完整理解这些工具的用途和关联性。一、基础工具链模块详细介绍1.Node.js1.1功能概述Node.js是一个运行时环境,它允许开发者在服务
Java 集成MySQL+MyBatis实战(含代码)
C_V_Better
java mysql 架构设计 java mysql mybatis 后端 数据库
在Java开发中,MyBatis是一个功能强大的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs映射成数据库中的记录。本文将通过实战案例,详细展示如何使用MyBatis集成MySQL,实现对数据库的增删改查操作。一、环境准备在开始编写代码
多线程并发模拟实现与分析:基于Scapy的TCP SYN洪水攻击实验研究
键盘侠伍十七
tcp/ip 网络协议 网络 网络安全 python syn flood
简介实现基于Python实现的多线程TCPSYN洪水攻击。该实例利用Scapy库构造并发送TCPSYN数据包,通过多线程技术模拟并发的网络攻击行为。实现原理SYNFlood攻击是一种经典的分布式拒绝服务(DDoS)攻击方式,利用了TCP协议握手过程中的弱点。TCP三次握手过程在正常情况下,TCP建立连接需要经过以下三个步骤的交互:客户端发送SYN:客户端向服务器发送一个同步(SYN)段,其中包含客
python的scapy解读pcap包
AI拉呱
python高级编程 工具封装 python 开发语言
好的,下面是一个使用Python和scapy库来解读pcap文件的示例代码。scapy是一个非常强大的网络数据包处理库,可以用来捕获、解读和生成网络数据包。首先,确保你已经安装了scapy:pipinstallscapy然后,创建一个Python文件(例如read_pcap.py),在其中编写以下代码:fromscapy.allimportrdpcapdefread_pcap(file_path)
mysql 如何查看建表语句
艾斯比的日常
mysql mysql 数据库 database
由于公司都是使用linux跳板机连接mysql,而某个项目又没有测试环境,于是只能通过跳板机查看某张表的详细信息.具体语句如下这里以查看ups_auth_info表为例#\G表示以垂直形式查看结果showcreatetableups_auth_info\G;总结:showcreatetablexxx\G;语句虽然简单,但是自己如果不注重积累,那么在使用mysql命令时,就不得不现场查询sql语法,
提示-bash: telnet: command not found的解决方法
廖俊才
Linux CentOS
Linuxcentos运行telnet命令,出现下面的错误提示:[root@localhost~]#telnet127.0.0.1-bash:telnet:commandnotfound解决方法:安装telnet服务centos、ubuntu安装telnet命令的方法.yumlisttelnet*列出telnet相关的安装包yuminstalltelnet-server安装telnet服务yumi
clang编译代码报错:`_start': (.text+0x24): undefined reference to `main'
PandaMohist
前端 linux javascript 运维 服务器
1.说明使用clang++10.1编译报错:/usr/bin/ld:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crt1.o:infunction`_start':(.text+0x24):undefinedreferenceto`main'clang-10:error:linkercommandfailedwithexitc
(.text+0x1b): undefined reference to `main‘
༺࿈梦༒缘࿈༻
c++ linux 服务器
使用vscodeLinuxg++编译出现/usr/bin/ld:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o:infunction`_start':(.text+0x1b):undefinedreferenceto`main'collect2:error:ldreturned1exitstatusmake:**
Python:基于Scapy的深度包分析与网络攻击防御方案
Lethehong
Python在手 bug溜走!码农的快乐 你不懂~ python scapy syn dns
嗨,我是Lethehong!立志在坚不欲说,成功在久不在速欢迎关注:点赞⬆️留言收藏欢迎使用:小智初学计算机网页AI感谢这位博主提出的问题,如果在以后的文章中,大家有其他相关的问题,也可以积极的在评论区评论出来,博主我会的,我会积极的收纳问题,并及时的做出回应!目录1.环境准备2.基础流量捕获3.深度协议解析4.异常流量检测逻辑4.1SYNFlood检测4.2DNS放大攻击检测5.高级分析技术5.
PHP 数据库操作:以 MySQL 为例
来恩1003
PHP 从入门到精通 数据库 php mysql
PHP学习资料PHP学习资料PHP学习资料在PHP应用开发中,与数据库进行交互是一项核心任务。MySQL作为一种广泛使用的关系型数据库管理系统,和PHP搭配默契,为开发者提供了强大的数据存储和管理能力。接下来,我们将详细讲解如何使用PHP进行MySQL数据库的连接、查询、插入、更新、删除等操作,以及数据库事务处理。一、数据库连接在PHP中,使用mysqli扩展(面向对象风格)或mysql扩展(过程
Python之json模块的序列化和反序列化
如梦@_@
python基础
序列化:可以理解为压缩反序列化:可以理解为解压Python中序列化和反序列化其实就是一个正反两个过程。序列化就是将Python对象转化为json格式,因为Python对象只有Python语言能够识别,如果想把数据发给Java代码写的程序,那么就识别不了,所以就有一个中间的格式:json,Java中也是一样,就是将Java的数据类型转换成json格式。反序列化就是,Python接收数据的应该是Pyt
python3安装mysql连接_Python3使用PyMySQL连接MySQL
weixin_39814925
前提介绍:【功能实现】:1.登录本地MySQLServer创建数据库和表,Python3使用PyMySQL连接本地MySQL服务器,实现对数据库的表进行简单Insert操作。【软件配置】:1.MySQL服务器:MySQL8.0.202.Pymsql版本:Pymsql0.9.33.Python版本:Python34.NavicatforMySQL版本:Navicat115.PyCharm版本:PyC
ASM系列五 利用TreeApi 解析生成Class
lijingyao8206
ASM 字节码动态生成 ClassNode TreeAPI
前面CoreApi的介绍部分基本涵盖了ASMCore包下面的主要API及功能,其中还有一部分关于MetaData的解析和生成就不再赘述。这篇开始介绍ASM另一部分主要的Api。TreeApi。这一部分源码是关联的asm-tree-5.0.4的版本。
在介绍前,先要知道一点, Tree工程的接口基本可以完
链表树——复合数据结构应用实例
bardo
数据结构 树型结构 表结构设计 链表 菜单排序
我们清楚:数据库设计中,表结构设计的好坏,直接影响程序的复杂度。所以,本文就无限级分类(目录)树与链表的复合在表设计中的应用进行探讨。当然,什么是树,什么是链表,这里不作介绍。有兴趣可以去看相关的教材。
需求简介:
经常遇到这样的需求,我们希望能将保存在数据库中的树结构能够按确定的顺序读出来。比如,多级菜单、组织结构、商品分类。更具体的,我们希望某个二级菜单在这一级别中就是第一个。虽然它是最后
为啥要用位运算代替取模呢
chenchao051
位运算 哈希 汇编
在hash中查找key的时候,经常会发现用&取代%,先看两段代码吧,
JDK6中的HashMap中的indexFor方法:
/**
* Returns index for hash code h.
*/
static int indexFor(int h, int length) {
最近的情况
麦田的设计者
生活 感悟 计划 软考 想
今天是2015年4月27号
整理一下最近的思绪以及要完成的任务
1、最近在驾校科目二练车,每周四天,练三周。其实做什么都要用心,追求合理的途径解决。为
PHP去掉字符串中最后一个字符的方法
IT独行者
PHP 字符串
今天在PHP项目开发中遇到一个需求,去掉字符串中的最后一个字符 原字符串1,2,3,4,5,6, 去掉最后一个字符",",最终结果为1,2,3,4,5,6 代码如下:
$str = "1,2,3,4,5,6,";
$newstr = substr($str,0,strlen($str)-1);
echo $newstr;
hadoop在linux上单机安装过程
_wy_
linux hadoop
1、安装JDK
jdk版本最好是1.6以上,可以使用执行命令java -version查看当前JAVA版本号,如果报命令不存在或版本比较低,则需要安装一个高版本的JDK,并在/etc/profile的文件末尾,根据本机JDK实际的安装位置加上以下几行:
export JAVA_HOME=/usr/java/jdk1.7.0_25  
JAVA进阶----分布式事务的一种简单处理方法
无量
多系统交互 分布式 事务
每个方法都是原子操作:
提供第三方服务的系统,要同时提供执行方法和对应的回滚方法
A系统调用B,C,D系统完成分布式事务
=========执行开始========
A.aa();
try {
B.bb();
} catch(Exception e) {
A.rollbackAa();
}
try {
C.cc();
} catch(Excep
安墨移动广 告:移动DSP厚积薄发 引领未来广 告业发展命脉
矮蛋蛋
hadoop 互联网
“谁掌握了强大的DSP技术,谁将引领未来的广 告行业发展命脉。”2014年,移动广 告行业的热点非移动DSP莫属。各个圈子都在纷纷谈论,认为移动DSP是行业突破点,一时间许多移动广 告联盟风起云涌,竞相推出专属移动DSP产品。
到底什么是移动DSP呢?
DSP(Demand-SidePlatform),就是需求方平台,为解决广 告主投放的各种需求,真正实现人群定位的精准广
myelipse设置
alafqq
IP
在一个项目的完整的生命周期中,其维护费用,往往是其开发费用的数倍。因此项目的可维护性、可复用性是衡量一个项目好坏的关键。而注释则是可维护性中必不可少的一环。
注释模板导入步骤
安装方法:
打开eclipse/myeclipse
选择 window-->Preferences-->JAVA-->Code-->Code
java数组
百合不是茶
java数组
java数组的 声明 创建 初始化; java支持C语言
数组中的每个数都有唯一的一个下标
一维数组的定义 声明: int[] a = new int[3];声明数组中有三个数int[3]
int[] a 中有三个数,下标从0开始,可以同过for来遍历数组中的数
javascript读取表单数据
bijian1013
JavaScript
利用javascript读取表单数据,可以利用以下三种方法获取:
1、通过表单ID属性:var a = document.getElementByIdx_x_x("id");
2、通过表单名称属性:var b = document.getElementsByName("name");
3、直接通过表单名字获取:var c = form.content.
探索JUnit4扩展:使用Theory
bijian1013
java JUnit Theory
理论机制(Theory)
一.为什么要引用理论机制(Theory)
当今软件开发中,测试驱动开发(TDD — Test-driven development)越发流行。为什么 TDD 会如此流行呢?因为它确实拥有很多优点,它允许开发人员通过简单的例子来指定和表明他们代码的行为意图。
TDD 的优点:
&nb
[Spring Data Mongo一]Spring Mongo Template操作MongoDB
bit1129
template
什么是Spring Data Mongo
Spring Data MongoDB项目对访问MongoDB的Java客户端API进行了封装,这种封装类似于Spring封装Hibernate和JDBC而提供的HibernateTemplate和JDBCTemplate,主要能力包括
1. 封装客户端跟MongoDB的链接管理
2. 文档-对象映射,通过注解:@Document(collectio
【Kafka八】Zookeeper上关于Kafka的配置信息
bit1129
zookeeper
问题:
1. Kafka的哪些信息记录在Zookeeper中 2. Consumer Group消费的每个Partition的Offset信息存放在什么位置
3. Topic的每个Partition存放在哪个Broker上的信息存放在哪里
4. Producer跟Zookeeper究竟有没有关系?没有关系!!!
//consumers、config、brokers、cont
java OOM内存异常的四种类型及异常与解决方案
ronin47
java OOM 内存异常
OOM异常的四种类型:
一: StackOverflowError :通常因为递归函数引起(死递归,递归太深)。-Xss 128k 一般够用。
二: out Of memory: PermGen Space:通常是动态类大多,比如web 服务器自动更新部署时引起。-Xmx
java-实现链表反转-递归和非递归实现
bylijinnan
java
20120422更新:
对链表中部分节点进行反转操作,这些节点相隔k个:
0->1->2->3->4->5->6->7->8->9
k=2
8->1->6->3->4->5->2->7->0->9
注意1 3 5 7 9 位置是不变的。
解法:
将链表拆成两部分:
a.0-&
Netty源码学习-DelimiterBasedFrameDecoder
bylijinnan
java netty
看DelimiterBasedFrameDecoder的API,有举例:
接收到的ChannelBuffer如下:
+--------------+
| ABC\nDEF\r\n |
+--------------+
经过DelimiterBasedFrameDecoder(Delimiters.lineDelimiter())之后,得到:
+-----+----
linux的一些命令 -查看cc攻击-网口ip统计等
hotsunshine
linux
Linux判断CC攻击命令详解
2011年12月23日 ⁄ 安全 ⁄ 暂无评论
查看所有80端口的连接数
netstat -nat|grep -i '80'|wc -l
对连接的IP按连接数量进行排序
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
查看TCP连接状态
n
Spring获取SessionFactory
ctrain
sessionFactory
String sql = "select sysdate from dual";
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
String[] names = wac.getBeanDefinitionNames();
for(int i=0; i&
Hive几种导出数据方式
daizj
hive 数据导出
Hive几种导出数据方式
1.拷贝文件
如果数据文件恰好是用户需要的格式,那么只需要拷贝文件或文件夹就可以。
hadoop fs –cp source_path target_path
2.导出到本地文件系统
--不能使用insert into local directory来导出数据,会报错
--只能使用
编程之美
dcj3sjt126com
编程 PHP 重构
我个人的 PHP 编程经验中,递归调用常常与静态变量使用。静态变量的含义可以参考 PHP 手册。希望下面的代码,会更有利于对递归以及静态变量的理解
header("Content-type: text/plain");
function static_function () {
static $i = 0;
if ($i++ < 1
Android保存用户名和密码
dcj3sjt126com
android
转自:http://www.2cto.com/kf/201401/272336.html
我们不管在开发一个项目或者使用别人的项目,都有用户登录功能,为了让用户的体验效果更好,我们通常会做一个功能,叫做保存用户,这样做的目地就是为了让用户下一次再使用该程序不会重新输入用户名和密码,这里我使用3种方式来存储用户名和密码
1、通过普通 的txt文本存储
2、通过properties属性文件进行存
Oracle 复习笔记之同义词
eksliang
Oracle 同义词 Oracle synonym
转载请出自出处:http://eksliang.iteye.com/blog/2098861
1.什么是同义词
同义词是现有模式对象的一个别名。
概念性的东西,什么是模式呢?创建一个用户,就相应的创建了 一个模式。模式是指数据库对象,是对用户所创建的数据对象的总称。模式对象包括表、视图、索引、同义词、序列、过
Ajax案例
gongmeitao
Ajax jsp
数据库采用Sql Server2005
项目名称为:Ajax_Demo
1.com.demo.conn包
package com.demo.conn;
import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;
//获取数据库连接的类public class DBConnec
ASP.NET中Request.RawUrl、Request.Url的区别
hvt
.net Web C# asp.net hovertree
如果访问的地址是:http://h.keleyi.com/guestbook/addmessage.aspx?key=hovertree%3C&n=myslider#zonemenu那么Request.Url.ToString() 的值是:http://h.keleyi.com/guestbook/addmessage.aspx?key=hovertree<&
SVG 教程 (七)SVG 实例,SVG 参考手册
天梯梦
svg
SVG 实例 在线实例
下面的例子是把SVG代码直接嵌入到HTML代码中。
谷歌Chrome,火狐,Internet Explorer9,和Safari都支持。
注意:下面的例子将不会在Opera运行,即使Opera支持SVG - 它也不支持SVG在HTML代码中直接使用。 SVG 实例
SVG基本形状
一个圆
矩形
不透明矩形
一个矩形不透明2
一个带圆角矩
事务管理
luyulong
java spring 编程 事务
事物管理
spring事物的好处
为不同的事物API提供了一致的编程模型
支持声明式事务管理
提供比大多数事务API更简单更易于使用的编程式事务管理API
整合spring的各种数据访问抽象
TransactionDefinition
定义了事务策略
int getIsolationLevel()得到当前事务的隔离级别
READ_COMMITTED
基础数据结构和算法十一:Red-black binary search tree
sunwinner
Algorithm Red-black
The insertion algorithm for 2-3 trees just described is not difficult to understand; now, we will see that it is also not difficult to implement. We will consider a simple representation known
centos同步时间
stunizhengjia
linux 集群同步时间
做了集群,时间的同步就显得非常必要了。 以下是查到的如何做时间同步。 在CentOS 5不再区分客户端和服务器,只要配置了NTP,它就会提供NTP服务。 1)确认已经ntp程序包: # yum install ntp 2)配置时间源(默认就行,不需要修改) # vi /etc/ntp.conf server pool.ntp.o
ITeye 9月技术图书有奖试读获奖名单公布
ITeye管理员
ITeye
ITeye携手博文视点举办的9月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。 9月试读活动回顾:http://webmaster.iteye.com/blog/2118112本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《NFC:Arduino、Andro