文章目录
一、准备工作
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)
【MySQL】事务
熬夜超级玩家
MySQL数据库 mysql android 数据库
目录基本概念事务操作自动提交事务开启事务提交事务回滚事务代码示例事务的特性ACID事务的隔离级别读未提交readuncommitted读已提交readcommitted可重复读repeatableread序列化(串行)serializable操作示例基本概念在MySQL中的事务(Transaction)是由存储引擎实现的,在MySQL中,只有InnoDB存储引擎才支持事务事务处理可以用来维护数据库
使用Annoy进行高效的近似最近邻搜索
eahba
前端 javascript angular.js python
在处理大型数据集时,我们经常面临需要快速、准确地查找与给定查询点相近的数据点的问题。Annoy(ApproximateNearestNeighborsOhYeah)就是为解决此类问题而生的一个强大工具。Annoy是一个用C++编写并具有Python绑定的库,专用于在空间中搜索与给定查询点相近的点。它能够创建大型的只读文件数据结构,并映射到内存中,以便于多个进程共享相同的数据。技术背景介绍Annoy
HBase安装
lianhedaxue
Hadoop hbase
HBase安装本章将介绍如何安装HBase和初始配置。需要用Java和Hadoop来处理HBase,所以必须下载java和Hadoop并安装系统中。安装前设置安装Hadoop在Linux环境下之前,需要建立和使用LinuxSSH(安全Shell)。按照下面设立Linux环境提供的步骤。创建一个用户首先,建议从Unix创建一个单独的Hadoop用户,文件系统隔离Hadoop文件系统。按照下面给出创建
关于Go那些懒得看又不得不知道的东西
Hock2024
golang 开发语言 后端
写在前面当开始学习go,亦或是cpp、还是java向go进行转职,这部分内容都是比较重要的。go的编译环境,模块管理以及一些基本的语法我认为还是很有必要去学习的,因此重新学习了这个部分并且写下下面的学习笔记!如果有写错或者不全面的地方,还希望大家及时纠正和指导。连接环境首先,作为一个后端er,能使用linux系统是必备的技能,这里我建议可以使用Xshell连接云服务器的方案来完成。云服务器建议使用
LINUX PCIe架构详解
吕喜曦
LINUXPCIe架构详解【下载地址】LINUXPCIe架构详解分享LINUXPCIe架构详解欢迎阅读《LINUXPCIe架构详解》文档项目地址:https://gitcode.com/Open-source-documentation-tutorial/cb0cf欢迎阅读《LINUXPCIe架构详解》文档。本指南深入浅出地介绍了在Linux操作系统环境下,针对PCIExpress(PCIe)设备
Linux下文件名中文乱码导致无法访问的问题解决方法
无级程序员
linux 文件名 乱码
一个基于openwrt路由器做文件服务器,硬盘里面有些文件的中文名乱码了,导致无法打开,也无法复制,想改名也无法操作,怎么办呢,网上搜了一大圈,都是说如何转换乱码,但文件都无法访问了,怎么转换?比如其中一个文件名是:“IVItripsummaryV1.0❁´◡`❁.xlsx",我试着如下命令发现能唯一的找到它:ls"IVItripsummaryV1.0"*于是,试着改名:mv"IVItripsum
linux渲染农场大连教程,Deadline 渲染农场搭建记录
温柔彭于晏
linux渲染农场大连教程
渲染农场的工作模式:多台机器组建集群进行渲染,比如:集群中有2台渲染机器A和B,服务器会同时分配给A和B任务,A渲染第一帧,B渲染第二帧,当A完成那么服务器会继续分配第三帧,同样B服务器完成以后服务器分配第四帧,以此类推。渲染农场分服务端和节点,服务器端也可以加入集群中当做节点,当然节点也可以提交渲染任务建议:服务器端单独安装,主要插件及自定义修改内容可单独存放,当多节点接入或大批量渲染任务上传时
文本转语音常用的几个python库
天蓝海乡
python 开发语言 人工智能 nlp 语音识别
在Python编程领域,文本到语音(Text-to-Speech,TTS)的转换是一个常见的需求,尤其是在开发能够与用户交互的应用程序时。以下是几个流行的Python库,它们可以帮助开发者实现文本到语音的转换,并且有的可以将转换后的语音保存为MP3文件。gTTS(GoogleText-to-Speech)gTTS是一个依赖于Google的文本转语音API的Python库。它能够将文本转换为自然听起
python之pyttsx3实现文字转语音播报
l8947943
python问题 语音识别 人工智能 pyttsx3 python朗读
1.pyttsx3是什么pyttsx3是Python中的文本到语音转换库,可以实现文本的朗读功能。2.pyttsx3的安装pipinstallpyttsx33.pyttsx3的demoimportpyttsx3pyttsx3.speak("Areyouok?")pyttsx3.speak("最近有许多打工人都说打工好难")戴上耳机直接跑即可。是不是很简单!那如果我们想对读音的速率,中英文问题进行自
Python报错解决:img2pdf.AlphaChannelError: Refusing to work on images with alpha channel
定星照空
python 人工智能
img2pdf.AlphaChannelError:Refusingtoworkonimageswithalphachannel-solved解决img2pdf模块不能上传含alpha通道透明度的图片的问题解决img2pdf模块PNG图片转PDF文件因alpha通道报错问题文章目录前言一、AlphaChannelError为什么出现?二、该种报错解决方法1.方法一:转化其他格式图片2.方法二:去除
基于PyCATIA的工程图视图锁定工具开发实战解析
Python×CATIA工业智造
CATIA二次开发 python 自动化
引言本文针对CATIA工程图设计中视图误操作问题,基于PySide6与PyCATIA库开发了一款轻量化视图锁定工具。通过Python二次开发实现全视图/选定视图快速锁定、非模态交互界面及状态实时反馈功能,有效提升大型装配体工程图操作效率。文章深度解析代码架构设计、关键技术实现及工程应用价值,提供完整的开发方法论。一、工具功能与工程应用场景1.1核心功能模块功能模块技术指标应用场景全视图锁定批量操作
Python中Pyttsx3库实现文本转化成语音MP3格式文件
定星照空
python
Pyttsx3库介绍pyttsx3库是一个功能强大且使用方便的Python本地文本转语音库。它不仅能在离线下将文本转换为语音MP3格式文件,也能在Windows、MacOS和Linux等多个操作系统上实现语音播报。同时,还可以调整语音播报的语速、音量和音色。安装与基本使用安装:cmd命令行中执行pipinstallpyttsx3。基本使用示例:importpyttsx3#初始化语音引擎engine
复习Linux的常用指令
一直开心
linux 常用指令的学习笔记
https://zhuanlan.zhihu.com/p/385065437https://zhuanlan.zhihu.com/p/385065437参考:tar指令的学习linux常用命令(2):tar命令(压缩文件/解压缩文件)_tar压缩-CSDN博客zip指令的学习Linuxzip命令|菜鸟教程tar的工作过程主要分为两个步骤,正向是打包与压缩,反向是解压缩与还原。打包指的是将一大堆文件
查询数据库中第n行数据
weixin_44231698
一般情况下分页的时候是需要的关键字。Oracle中则是rownum,MSSQL中是top关键字,MySQL中是limit关键字。查第n条数据,如:(1)select*from(SELECTROWNUMrn,A.*FROMTABLEA)bwhereb.rn=n;(2)selecttop1*fromTABLEAwhereidnotin(selecttopn-1idfromTABLEA);(3)用mys
使用PyTorch搭建Transformer神经网络:入门篇
DASA13
pytorch transformer 神经网络
1.简介Transformer是一种强大的神经网络架构,在自然语言处理等多个领域取得了巨大成功。本教程将指导您使用PyTorch框架从头开始构建一个Transformer模型。我们将逐步解释每个组件,并提供详细的代码实现。2.环境设置首先,确保您的系统中已安装Python(推荐3.7+版本)。然后,安装PyTorch和其他必要的库:pipinstalltorchnumpymatplotlib3.P
openai-agents 中custom example agent
ZHOU_CAMP
oi_agents 人工智能
代码pipshowopenai-agentsName:openai-agentsVersion:0.0.4Summary:OpenAIAgentsSDKHome-page:https://github.com/openai/openai-agents-pythonAuthor:Author-email:OpenAILicense-Expression:MITLocation:d:\soft\ana
Python 向量检索库Faiss使用
懒大王爱吃狼
python python 开发语言 自动化 Python基础 python教程
Faiss(FacebookAISimilaritySearch)是一个由FacebookAIResearch开发的库,它专门用于高效地搜索和聚类大量向量。Faiss能够在几毫秒内搜索数亿个向量,这使得它非常适合于实现近似最近邻(ANN)搜索,这在许多应用中都非常有用,比如图像检索、推荐系统和自然语言处理。以下是如何使用Faiss的基本步骤和示例:1.安装Faiss首先,你需要安装Faiss。你可
Python 应用部署云端实战指南 —— AWS、Google Cloud 与 Azure 全解析
清水白石008
python Python题库 python aws azure
Python应用部署云端实战指南——AWS、GoogleCloud与Azure全解析在当下云计算飞速发展的时代,将Python应用部署到云平台已成为大多数开发者和企业的首选。无论是构建Web服务、API接口,还是自动化任务调度,云平台都能为我们提供高可靠性、弹性伸缩与简便管理的优势。本文将详细阐述如何将Python应用分别部署到AWS、GoogleCloud与Azure,并介绍各平台下涉及的部署工
ARM:ELF bin Hex axf
守正待
ARM SoC RTOS arm
前言:PC平台流行的可执行文件格式(ExecutableFileFormat),主要是Windows下的PE(PortableExecutable)和Linux的ELF(ExecutableandLinkingFormat,可执行和链接格式)。他们都是COFF(CommonObjectFileFormat)的变种。ARM架构采用的也是ELF文件格式。COFF是在UnixSystemVRelease
Python编程:为什么使用同步原语
林十一npc
Python语言 python 开发语言
Python编程:为什么使用同步原语1.同步原语同步原语:计算机科学中用于实现进程或线程之间同步的机制。目的:提供一种方法来控制多个进程或线程的执行顺序,确保他们以一致的方式访问共享资源在多线程/多进程编程中,多个执行单元可能同时访问共享资源,导致竞态条件。同步原语通过协调执行顺序,确保数据一致性和操作原子性2.Python核心同步原语同步原语作用适用场景模块Lock(互斥锁)确保同一时间只有一个
linux环境下安装Redis后却找不到./src/redis-server
Lichenpar
redis # 记录BUG解决 redis
原因是因为在执行make命令的时候失败了。失败的原因大概率是环境没有安装gcc命令。先安装gcc命令yum-yinstallgcc然后再进入到redis安装目录下执行makedistclean然后重新编译一遍make这次的编译过程时间就会长一些了。然后启动./src/redis-server
python函数闭包和递归_闭包和递归_个人文章 - SegmentFault 思否
weixin_39830313
python函数闭包和递归
js变量的作用域:全局作用域(全局变量):在函数外面声明的变量**生命周期(变量从声明到销毁):页面从打开到关闭.局部作用域(局部变量):在函数里面声明的变量**生命周:开始调用函数到函数执行完毕1.闭包使用介绍1.闭包介绍(closure)1.1闭包:是一个可以在函数外部访问函数内部变量的函数->闭包是函数1.2闭包作用:可以在函数外部访问函数内部变量->延长局部变量的生命周期1.3闭包语法:-
python函数闭包和递归_python函数基础3--闭包 + 递归 + 函数回调
weixin_39532019
python函数闭包和递归
一、闭包1.函数嵌套defouter():print("外层函数")definner():print("内层函数")returninner()outer()函数嵌套流程图2.闭包闭包的表现形式:函数里面嵌套函数,外层函数返回内层函数的函数名,这种情况就称之为闭包defouter():print("外层函数")definner():print("内层函数")returninnerret=outer(
探索ELF世界的大门:JElf库深度揭秘
班歆韦Divine
探索ELF世界的大门:JElf库深度揭秘jelfELFparsinglibraryinjava.项目地址:https://gitcode.com/gh_mirrors/je/jelf在软件工程的浩瀚星空中,有一种文件格式如星辰般不可或缺,它便是ExecutableandLinkableFormat(ELF)——一个为Linux和Unix系统而生的传奇。今天,我们荣幸地向您介绍一款专为此格式设计的J
python中的递归、回调函数以及闭包总结
敲代码敲到头发茂密
Python成长之路 python 开发语言
这里写目录标题一、递归例1:利用递归函数计算1到10的和例2:利用递归函数计算10的阶乘二、回调函数特别注意:在函数中的调用函数分为以下情况:1、同步回调2、异步回调三、闭包一、递归作用:在函数内部调用自己若干次例1:利用递归函数计算1到10的和defsum_num(num):ifnum>=1:sum=num+sum_num(num-1)else:sum=0returnsumprint(sum_n
使用Pygame实现记忆拼图游戏
点我头像干啥
Ai pygame python 开发语言
引言记忆拼图游戏是一种经典的益智游戏,玩家需要通过翻转卡片来匹配相同的图案。这类游戏不仅能够锻炼玩家的记忆力,还能带来很多乐趣。本文将详细介绍如何使用Pygame库来实现一个简单的记忆拼图游戏。我们将从Pygame的基础知识开始,逐步构建游戏的各个部分,最终完成一个完整的游戏。1.Pygame简介Pygame是一个用于编写视频游戏的Python库,它基于SDL库(SimpleDirectMedia
《Python实战进阶》No28: 使用 Paramiko 实现远程服务器管理
带娃的IT创业者
Python实战进阶 python 服务器 开发语言
No28:使用Paramiko实现远程服务器管理摘要在现代开发与运维中,远程服务器管理是必不可少的一环。通过SSH协议,我们可以安全地连接到远程服务器并执行各种操作。Python的Paramiko模块是一个强大的工具,能够帮助我们实现自动化任务,如代码部署、批量命令执行和文件传输。本集将深入讲解Paramiko的核心功能,并通过实战案例展示如何高效管理远程服务器。核心概念和知识点SSH协议的基本原
python八股(—) --FBV,CBV
suohanfjiusbis
数据库 python
引言FBV是面向函数的视图。defFBV(request):ifrequest.method=='GET':returnHttpResponse("GET")elifrequest.method=='POST':returnHttpResponse("POST")CBV是面向类的视图。classCBV(View):defget(self,request):returnHttpResponse("G
【纯职业小组——思维】
Kent_J_Truman
蓝桥杯 算法
题目思路第十五届蓝桥杯省赛PythonB组H题【纯职业小组】题解(AC)_蓝桥杯纯职业小组-CSDN博客代码#includeusingnamespacestd;usingll=longlong;intmain(){ios::sync_with_stdio(0);cin.tie(0);intt;cin>>t;while(t--){intn;llk;cin>>n>>k;unordered_maph;f
第十五届蓝桥杯省赛PythonB组B题【数字串个数】题解(AC)
信奥郭老师
蓝桥杯 职场和发展
设n=10000n=10000n=10000。法一枚举333的个数以及777的个数,假设333的个数为iii,777的个数为jjj,那么非3,73,73,7的个数即为n−i−jn-i-jn−i−j。在长度为nnn的字符串中选取iii的方案数为CniC^i_nCni,在剩余n−in-in−i个位置选取jjj个的方案数为Cn−ijC^j_{n-i}Cn−ij,剩余位置个数为n−i−jn-i-jn−i−
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