首页
留言
导航
统计
Search
1
追番推荐!免费看动漫的网站 - 支持在线观看和磁力下载
2,512 阅读
2
推荐31个docker应用,每一个都很实用
1,312 阅读
3
PVE自动启动 虚拟机 | 容器 顺序设置及参数说明
933 阅读
4
一条命令,永久激活!Office 2024!
618 阅读
5
优选 Cloudflare 官方 / 中转 IP
490 阅读
默认分类
服务器
宝塔
VPS
Docker
OpenWRT
Nginx
群晖
前端编程
Vue
React
Angular
NodeJS
uni-app
后端编程
Java
Python
SpringBoot
SpringCloud
流程引擎
检索引擎
Linux
CentOS
Ubuntu
Debian
数据库
Redis
MySQL
Oracle
虚拟机
VMware
VirtualBox
PVE
Hyper-V
计算机
网络技术
网站源码
主题模板
登录
Search
标签搜索
Java
小程序
Redis
SpringBoot
docker
Typecho
Cloudflare
docker部署
虚拟机
WordPress
群晖
uni-app
CentOS
Vue
Java类库
Linux命令
防火墙配置
Mysql
脚本
Nginx
微醺
累计撰写
264
篇文章
累计收到
11
条评论
首页
栏目
默认分类
服务器
宝塔
VPS
Docker
OpenWRT
Nginx
群晖
前端编程
Vue
React
Angular
NodeJS
uni-app
后端编程
Java
Python
SpringBoot
SpringCloud
流程引擎
检索引擎
Linux
CentOS
Ubuntu
Debian
数据库
Redis
MySQL
Oracle
虚拟机
VMware
VirtualBox
PVE
Hyper-V
计算机
网络技术
网站源码
主题模板
页面
留言
导航
统计
搜索到
264
篇与
的结果
2023-02-15
uniapp webview 直接调用原生摄像头拍照 拍视频
uniapp webview 直接调用原生摄像头拍照 拍视频 img video,通过ajax获取blob(file为特殊的blob)对象并上传到后端服务器web-view中通过plus方法调用摄像头拍照或者拍视频并上传后端的操作步骤如下:plus.camera.getCamera()获取摄像头对象 cmrcmr.captureImage(callback)\ cmr.startVideoCapture(callback)获得临时资源的临时路径 pathplus.io.resolveLocalFileSystemURL(‘路径path’,callback) 通过临时路径获得文件对象 entryentry.toRemoteURL() 获得网络路径通过ajax,设置responseType为blob,获取文件的blob对象,根据后端接口要求进行处理并上传例子中的后端接口要求表单数据formData的形式上传附上htm5文档地址http://www.html5plus.org/doc/zh_cn/io.html#plus.io.DirectoryEntry.toRemoteURL 以图片为例,代码如下,let cmr = plus.camera.getCamera() //获取相机对象 cmr.captureImage( //调用拍照方法,获得临时路径 function (p) { plus.io.resolveLocalFileSystemURL(p, function (entry) { //通过临时路径,获得文件系统中的文件对象entry entry.file(function (file) { // 可通过entry对象的file方法,获取文件数据对象(该文件数据对象仍无法直接使用) axios({ method: 'get', url: entry.toRemoteURL(), responseType: 'blob', }).then(res => { let blob = res.data const uploadFile = new FormData() uploadFile.append('file', blob ) axios({ method: 'post', url: '/file/api/Upload', headers: { 'Content-Type': 'multipart/form-data'}, data: uploadFile, }) }) file.close() }) }) }, function (error) { console.log('---' + 'Capture image failed: ' + error.message) }, )视频相同,将 captureImage 换成 startVideoCapture 即可
2023年02月15日
68 阅读
0 评论
0 点赞
2023-02-15
用uni-app开发自定义微信小程序头部导航
uni-app 官网:uni-app 官网微信小程序开发文档:微信开放文档官方介绍 uni-app:uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可编译到 iOS、Android、H5、以及各种小程序等多个平台。即使不跨端,uni-app同时也是更好的小程序开发框架。个人感受(功能很丰富,bug 也很丰富)*接下来我会将在项目中用到的一些我感觉还不错的东西记录一下,以供分享以及自己的积累=。=如有不足,请大佬们指教!!1.环境介绍编译器就用官方的 HBuilderX 编译器, 然后好像没了,创建一个 uni-app 项目就可以开始撸了。2.首先要先去除小程序自带的头部导航,在 page.json 文件里的对应的页面的 style 配置项里加上:"style":{ "navigationStyle":"custom" }就可以开始自定义导航了。3.为了适配不同型号手机的头部高度,所以要通过(异步)uni.getSystemInfo()或者(同步)uni.getSystemInfoSync()获取顶部状态栏的高度得到的状态栏高度可以存 vuex 里。(增加,获取头部高度,定义在全局)/*main.js*/ import Vue from 'vue' import App from './App' import store from './store' Vue.prototype.$store = store Vue.config.productionTip = false Vue.prototype.isBarHeight999 = function() { return new Promise((resolve, reject) => { var that = this var isTemp = {} uni.getSystemInfo({ success(res) { let totalTopHeight = 68 if (res.model.indexOf('iPhone X') !== -1) { totalTopHeight = 88 } else if (res.model.indexOf('iPhone') !== -1) { totalTopHeight = 64 } isTemp['statusBarHeight'] = res.statusBarHeight isTemp['titleBarHeight'] = totalTopHeight - res.statusBarHeight isTemp['allHeight'] = totalTopHeight resolve(isTemp) }, fail(e) { reject(e) } }) }) } App.mpType = 'app' const app = new Vue({ store, ...App }) app.$mount()4.在 components 文件里创建头部导航组件,名字自己起,我这边是 navTop.vue,直接上代码:/*navTop.vue*/<template> <view> <view class="nav_top" :style="{height:barHeight.allHeight+'px','background-color':hasBgc}"> <view class="status-bar" :style="{height:barHeight.statusBarHeight+'px'}"></view> <view class="topContent"> <view v-if="isBack" class="goBack" @click="goBack(backUrl)" hover-class="bgBlack999"> <image :src="'../static/icon_back_'+backColor+'.png'" mode=""></image> </view> <view class="title" :style="{color:color}">{{title}}</view> </view> </view> <view v-if="isHeight" class="marginBox" :style="{height:barHeight.allHeight+'px'}"></view> </view> </template> <script> import {mapState} from 'vuex' export default { props:{ title:{ type:String, default:'XXX' }, hasBgc:{ //背景色 type:String, default:'#5FCBAD' }, color:{ //字体颜色 type:String, default:'#fff;' }, isBack:{ //是否有返回箭头 type: Boolean, default:false }, backColor:{ //回退箭头颜色 type:String, default:'white' }, isHeight:{ //头部撑开高度 type:Boolean, default:true }, isNavBack:{ //固定返回前面的页面 type:Boolean, default:true }, backUrl:{ //返回到那个页面 type:String, default:'index' }, backNum:{ //返回几个页面 type:Number, default:1 } }, computed:{ ...mapState(['barHeight']) }, data() { return { }; }, methods:{ goBack(url){ if(this.isNavBack){ const that = this uni.navigateBack({ delta:that.backNum }) }else{ var isUrl = `/pages/${url}/${url}` console.log(isUrl) uni.switchTab({ url: isUrl }) } } }, created() { if(!this.barHeight.allHeight||!this.barHeight.statusBarHeight){ this.isBarHeight999().then((isTemp)=>{ this.$store.state.barHeight = isTemp }) } } } </script> <style lang="scss"> .nav_top{ width: 100vw; position: fixed; top: 0; left: 0; z-index: 900; display: flex; flex-direction: column; background-color: transparent; &.bgColor{ background-color: #5FCBAD; } .topContent{ width: 100vw; height: 100upx; position: relative; .goBack{ position: absolute; top: 0; left: 0; width: 10vw; height: 100upx; display: flex; align-items: center; padding-left: 20upx; box-sizing: border-box; image{ width: 40upx; height: 42upx; } } .title{ text-align: center; width: 100%; height: 100%; line-height: 100upx; font-size: 40upx; font-family:'自定义字体'; } } } </style>使用:/*test.vue*/<template> <view> <navTop :title="navtop.title" :isHeight="false" hasBgc="red" :color="navtop.color" :isBack="true"></navTop> </view> </template> <script> import navTop from '../../components/navTop.vue' export default { components: { navTop }, data() { return { navtop: { title: 'XXX', color: '#024230' } }; } } </script>效果图如下:已适配大部分机型,具体尺寸可以根据需求自行调整。。(还有不足之处,慢慢完善吧 o(∩_∩)o 哈哈)
2023年02月15日
56 阅读
0 评论
0 点赞
2023-02-15
uni-app人脸识别功能
在听到人脸识别,连忙去看看,去阿里 腾讯 看他们的人脸识别方法,官方sdk什么的。到后来,需求确定了,拍照(照片)上传,后台去识别是不是本人,这一瞬间从天堂到地狱,放着官方那么好的方法,不要。用照片,还的自己去写,去实现。下面为大家提供一个 uni-app 自动拍照 上传照片 后端做匹配处理。参考插件市场的 https://ext.dcloud.net.cn/plugin?id=4892在使用前 先去manifest.json 选择APP模块配置, 勾选直播推流 直接采用nvue开发,直接使用live-pusher组件进行直播推流,如果是vue开发,则需要使用h5+的plus.video.LivePusher对象来获取 nuve js注意事项 注意nuve 页面 main.js 的封装函数 。无法直接调用(小程序其他的端没有测试)在APP端 this.api报错,显示是undefined,难道nvue页面,要重新引入api文件在APP端,main.js中挂载Vuex在nvue页面无法使用this.$store.state.xxx简单粗暴点直接用uni.getStorageSync 重新获取一遍//获取用户数据 userInfo在Data里定义 this.userInfo = uni.getStorageSync('userInfo')nuve css注意事项 单位只支持px其他的em,rem,pt,%,upx 都不支持需要重新引入外部css不支持使用 import 的方式引入外部 css<style src="@/common/test.css"></style>默认flex布局display: flex; //不需要写 //直接用下面的标签 flex-direction: column; align-items: center; justify-content: space-between;页面样式<view class="live-camera" :style="{ width: windowWidth, height: windowHeight }"> <view class="title"> {{second}}秒之后开始识别 </view> <view class="preview" :style="{ width: windowWidth, height: windowHeight-80 }"> <live-pusher id="livePusher" ref="livePusher" class="livePusher" mode="FHD" beauty="1" whiteness="0" aspect="2:3" min-bitrate="1000" audio-quality="16KHz" :auto-focus="true" :muted="true" :enable-camera="true" :enable-mic="false" :zoom="false" @statechange="statechange" :style="{ width: cameraWidth, height: cameraHeight }"></live-pusher> <!--提示语--> <cover-view class="remind"> <text class="remind-text" style="">{{ message }}</text> </cover-view> <!--辅助线--> <cover-view class="outline-box" :style="{ width: windowWidth, height: windowHeight-80 }"> <cover-image class="outline-img" src="../../static/idphotoskin.png"></cover-image> </cover-view> </view> </view>JS部分<script> import operate from '../../common/operate.js' import api from '../../common/api.js' export default { data() { return { //提示 message: '', //相机画面宽度 cameraWidth: '', //相机画面宽度 cameraHeight: '', //屏幕可用宽度 windowWidth: '', //屏幕可用高度 windowHeight: '', //流视频对象 livePusher: null, //照片 snapshotsrc: null, //倒计时 second: 0, ifPhoto: false, // 用户信息 userInfo: [] }; }, onLoad() { //获取屏幕高度 this.initCamera(); //获取用户数据 this.userInfo = uni.getStorageSync('userInfo') setTimeout(() => { //倒计时 this.getCount() }, 500) }, onReady() { // console.log('初始化 直播组件'); this.livePusher = uni.createLivePusherContext('livePusher', this); }, onShow() { //开启预览并设置摄像头 this.startPreview(); }, methods: { //获取屏幕高度 initCamera() { let that = this uni.getSystemInfo({ success: function(res) { that.windowWidth = res.windowWidth; that.windowHeight = res.windowHeight; that.cameraWidth = res.windowWidth; that.cameraHeight = res.windowWidth * 1.5; } }); }, //启动相机 startPreview() { this.livePusher.startPreview({ success(res) { console.log('启动相机', res) } }); }, //停止相机 stopPreview() { let that = this this.livePusher.stopPreview({ success(res) { console.log('停止相机', res) } }); }, //摄像头 状态 statechange(e) { console.log('摄像头', e); if (this.ifPhoto == true) { //拍照 this.snapshot() } }, //抓拍 snapshot() { let that = this this.livePusher.snapshot({ success(res) { that.snapshotsrc = res.message.tempImagePath; that.uploadingImg(res.message.tempImagePath) } }); }, // 倒计时 getCount() { this.second = 5 let timer = setInterval(() => { this.second--; if (this.second < 1) { clearInterval(timer); this.second = 0 this.ifPhoto = true this.statechange() } }, 1000) }, // 图片上传 uploadingImg(e) { let url = e // console.log(url); let that = this uni.uploadFile({ url: operate.api + 'api/common/upload', filePath: url, name: 'file', formData: { token: that.userInfo.token }, success(res) { // console.log(res); let list = JSON.parse(res.data) // console.log(list); that.request(list.data.fullurl) } }) }, //验证请求 request(url) { let data = { token: this.userInfo.token, photo: url } api.renzheng(data).then((res) => { // console.log(res); operate.toast({ title: res.data.msg }) if (res.data.code == 1) { setTimeout(() => { operate.redirectTo('/pages/details/details') }, 500) } if (res.data.code == 0) { setTimeout(() => { this.anew(res.data.msg) }, 500) } }) }, // 认证失败,重新认证 anew(msg) { let that = this uni.showModal({ content: msg, confirmText: '重新审核', success(res) { if (res.confirm) { // console.log('用户点击确定'); that.getCount() } else if (res.cancel) { // console.log('用户点击取消'); uni.navigateBack({ delta: 1 }) } } }) }, } }; </script>css 样式<style lang="scss"> // 标题 .title { font-size: 35rpx; align-items: center; justify-content: center; } .live-camera { .preview { justify-content: center; align-items: center; .outline-box { position: absolute; top: 0; left: 0; bottom: 0; z-index: 99; align-items: center; justify-content: center; .outline-img { width: 750rpx; height: 1125rpx; } } .remind { position: absolute; top: 880rpx; width: 750rpx; z-index: 100; align-items: center; justify-content: center; .remind-text { color: #dddddd; font-weight: bold; } } } } </style>
2023年02月15日
65 阅读
0 评论
0 点赞
2023-02-14
uni-app云打包成ipa文件安装到iPhone上全过程记录
今天记录一下关于uniapp开发出来的项目怎么进行云打包,到本地手机上,这篇文章将从注册苹果开发者开始记录,一直到安装到 iPhone 手机上整个完整的过程,之所以写这篇文章第一是我自己需要记录一下,第二是很多博主也有写,但是都是片段,我也早就想写了,但是之前的例子没有截图,所以借助这次又写类似项目的机会,记录一下,我希望您在我这可以直接解决关于云打包中遇到的大部分问题。ok 废话不多说,开整,篇幅较长,我尽量分段加导航的模式进行! 本文主要是记录 ios 的打包过程,安卓的不写原因是他没有那么多的要求,放张图说明一下:我们就下面的四个红框的文件怎么来的分别进行讲解。(获取的地方我都进行加粗标记了,看的时候可以注意一下)不喜欢看我的可以看官方的官方地址 我们今天就是搞定上面需要的四个文件。需要的准备工作一个苹果的开发者账号 申请流程APP 的一系列大小的 logo (配置 manifest.json)登录到开发者平台(使用注册的开发者账号)进行证书、设备、开发人员的配置Hbuilder 开发工具进行云打包一台 MAC 笔记本,需要用到 mac 自带的钥匙串功能进行证书的申请APP 图标配置找到项目中的 manifest.json 文件,打开以后将本地的图标配置好就 ok,此步骤在 hbuilder 中操作 下面的步骤都是在您申请开发者账号以后需要做的事情。证书、设备、开发人员的配置登录到开发者平台进行配置开发者平台 添加开发者如果需要别的开发人员进行开发这个项目,可以直接打开 People,进行添加开发者,需要注意的是这一步只有注册者可以打开,也就是被拉进去的开发者是没有权限拉别人的。下面说一下具体拉人的步骤: 然后就到邀请成功,被邀请的开发者会收到一封邮件,点击同意就可以了 配置 App ID App 的唯一标识打开登录以后的开发者中心,点击下面的 Certificates 点击 ➕ 选择注册 选择 App 这里的配置名字的时候建议是域名反过来,加上你的描述,保证唯一就可以 不要选择太多,每一个的审核不一样,太多到时候审核失败了,不好搞! 下一步就是点击确认注册 至此 AppID 就创建结束了,也就意味着我们云打包的截图上面的第一个红框(BundleID(AppID))内容有了。生成证书请求文件这里需要 mac 笔记本自带的钥匙串功能,我们打开钥匙串,可以 command+空格,输入钥匙串 我这里没办法截图了,尴尬, 点击钥匙串访问-证书管理-从证书颁发机构请求证书 至此先放着,我们接着注册申请开发证书和描述文件这个东西申请下来以后就可以将 APP 安装到我们的 iPhone 上,进行测试,但是这个需要注意的一个点是,一个描述文件最多可以绑定 100 台测试手机 此时 cer 文件双击可以打开这个证书,会直接打开钥匙串,这个 cer 文件是为了后面导出 p12 证书,也就是为第一张红框中的最后一个文件进行准备导出 p12 证书导出证书的目的就是添加到红框中最后一个选项,我们打开刚才下载的证书 我们右键进行导出 这里设置的密码就是我们云打包里面的第二个红框里面需要输入的密码(证书私钥密码) p12 文件就是红色框中的最后一个文件(私钥证书) 至此我们云打包需要的四个地方已经搞定了三个,就剩第三个红框中的内容了,我们接着看申请开发 描述文件这个文件是云打包中的第三个红框需要的文件,这个文件可以确定哪些设备可以进行安装 beta 版本的 APP,也就是没有发布之前可以在哪些手机上进行安装。 在生成描述文件之前要先添加设备信息添加设备 UDID 获取 UDID这个方式很多,最快的方式就是直接使用 mac 自带的 itunes 程序连接手机 这里很多人看到的是序列号,没事,点击序列号会变,变到 UDID 的时候右键进行拷贝就好了。 这样就获取到 udid,然后按照上面的步骤继续,最后保存就好了。至此设备就添加结束了。生成描述文件 下一步就是点击下载到本地,至此云打包中的第三个红色框(证书 profile 文件)的文件也准备完毕,现在就可以打包了。打包结束安装到本地 至此 ipa 文件就生成了,但是他和安卓不同的是 iPhone 不支持直接点击安装,这个时候我们需要下载一个爱思助手进行帮助我们安装本地的 ipa 文件,爱思助手下载地址 下载好以后连接上手机 如果是 windows 电脑也是可以安装的,只是没办法打包,如果给你一个 ipa 文件,你需要的是下载一个爱思助手 windows 版本的,然后安装 itunes,windows 版本的,连接上你的 iPhone 手机,下面的操作都一样了,我们接着看,打开以后添加本地文件,或者将 ipa 文件直接拖进去也可以,如图: 然后就等待安装结束,提示成功以后手机上就可以正常使用了。常见问题安装失败安装失败很大一个原因是没有配置 UDID,配置以后没有重新成功描述文件,也就是云打包中的第三个红框中文件没有更换就打包了。手机连接不上数据线是不是有问题是不是没有解锁是不是没有点击信任是不是 type-c 或者 usb 口坏掉了博客转载与 uni-app云打包成ipa文件安装到iPhone上全过程记录
2023年02月14日
86 阅读
1 评论
0 点赞
2023-02-14
PVE 7.2 ikuai + openwrt + DSM6.2.3 + 网心云 重装备用
PVE 7.2 ikuai + openwrt + DSM6.2.3 + 网心云 重装备用1.PVE 7.2 安装 PVE 系统官网下载下载后用 RUFUS 以 DD 模式写入 U 盘选择 U 盘启动,安装时最好连接外网 域名 pve.lan ip 192.168.10.253 /24 网关 192.168.10.1更新 PVEPVE 换源wget https://mirrors.ustc.edu.cn/proxmox/debian/proxmox-release-bullseye.gpg -O /etc/apt/t硬件配置CPU i3-8300T主板 工控主板 6SATA 2NVME 2 千兆口内存 8G*2 DDR4 2666机箱 迎广 MS04电源 益恒 250W硬盘 大华 1T NMVE 三星 250G 2.5 寸 SSD 4 块 3.5 希捷银河企业盘 8T网卡 PCIE 2 口千兆1.PVE 7.2 安装PVE 系统官网下载 https://www.proxmox.com/en/downloads下载后用 RUFUS 以 DD 模式写入 U 盘选择 U 盘启动,安装时最好连接外网 域名 pve.lan ip192.168.10.253 /24 网关 192.168.10.1更新 PVEPVE 换源wget https://mirrors.ustc.edu.cn/proxmox/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg echo "#deb https://enterprise.proxmox.com/debian/pve bullseye pve-enterprise" \> /etc/apt/sources.list.d/pve-enterprise.list echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bullseye pve-no-subscription" \> /etc/apt/sources.list.d/pve-no-subscription.listDebian 换源mv /etc/apt/sources.list /etc/apt/sources.list.bk nano /etc/apt/sources.listSources.list 加入源deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free # deb-src http://mirrors.ustc.edu.cn/debian stable main contrib non-free deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free # deb-src http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free # deb http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free # deb-src http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free更新apt update apt upgrade -y设置 PVE 直通shell 里面输入命令:nano /etc/default/grub在里面找到:GRUB_CMDLINE_LINUX_DEFAULT="quiet"然后修改为GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"更新一下update-grub新增所需模块修改文件/etc/modules,加入如下的行nano /etc/modules在里面填入vfio vfio_iommu_type1 vfio_pci vfio_virqfd执行命令来更新 initramfsupdate-initramfs -u -k all重启 PVE 虚拟机2.ikuai 安装ikuai 系统官网下载 https://www.ikuai8.com/component/downloadiso 上传常规 名称:ikuai操作系统 使用 CD/DVD 光盘镜像文件(ISO):选择 ikuai 镜像系统 默认磁盘 总线/设备:SATA 磁盘大小:8GCPU 核心:2内存 内存 :2048网络 模型:VirtIO (半虚拟化)确认添加 PCI 设备 选择直通的网口选项里开机自启动改成是安装好后移除 CD 镜像设置 ikuai修改用户名密码,远程 web 访问修改内外网设置,外网 PPPOE,内网 LAN 多网口桥接 192.168.10.1修改 DHCP 服务 192.168.10.11-192.168.10.110 DNS 223.5.5.5 114.114.114.114打开 UPNP,导入备份的端口映射高级应用里,设置 aliyun 域名映射跨三层应用里设置 192.168.10.2设置 VPN 认证计费里先添加用户账号,本地认证服务里启用 L2TP绑定 ikuai 云,网络里启用 ipv63.openwrt 安装镜像文件 自己编译(20220410)旁路由专用在阿里云共享里iso 上传 img 文件常规 名称:openwrt操作系统 不使用任何介质CPU 核心:2内存 内存 :1024网络 模型:VirtIO (半虚拟化)其余默认确认原硬盘分离删除选项里开机自启动改成是转换 openwrt 镜像盘为虚拟磁盘qm importdisk 101 /var/lib/vz/template/iso/openwrt.img local-lvm使用虚拟磁盘,修改 SATA 总线设置 openwrt修改用户名密码修改 ip 192.168.10.2 网关 192.168.10.1 DNS223.5.5.5 114.114.114.114 忽略此接口修改主题、背景ACC 网络加速设置安装 SNMPD服务里插件订阅,仅常用端口4.DSM6.2.3 安装引导文件系统文件在阿里云共享里iso 上传 img 引导文件常规 名称:DSM操作系统 不使用任何介质CPU 核心:4内存 内存 :6144网络 模型:VirtIO (半虚拟化)其余默认确认原硬盘分离删除选项里开机自启动改成是转换群晖引导盘为虚拟磁盘qm importdisk 102 /var/lib/vz/template/iso/synoboot.img local-lvm使用虚拟磁盘,修改 SATA 总线添加直通 PCI SATA 控制器,硬盘直通启动后爱快 DHCP 里查看 IP 地址,安装或恢复系统设置 DSM设置用户名密码修改 ip 192.168.10.210 网关 192.168.10.2 DNS223.5.5.5修改主题、背景等添加第三方套件源 矿神群晖套件中心安装 webstation、phpmyadmin、docker 等5.网心云安装网心云 X86 ISO 镜像官网下载 iso 上传常规 名称:WXY操作系统 使用 CD/DVD 光盘镜像文件(ISO):选择 X86 镜像系统 默认磁盘 总线/设备:SATA 磁盘大小:20GCPU 核心:4内存 内存 :3072网络 模型:VirtIO (半虚拟化)确认选项里开机自启动改成是安装好后移除 CD 镜像设置网心云安装后添加数据盘 480G激活或迁移网心云修改 IP 192.168.10.188修改带宽等信息APP 查看是否正常电信 1000M 宽带上传 50M,网心云稳定下来,平均 1.8 元左右一天,ALL IN ONE 一天的电费够了
2023年02月14日
245 阅读
0 评论
0 点赞
2023-02-14
宝塔面板卸载重装教程:清理删除宝塔面板并重新开始
宝塔面板卸载重装怎么操作?我们很多用户可能安装宝塔之后会经常看一下有没有新版本,如果有新版直接右上角”更新”升级一下版本就可以了,升级新版也有助于修复已知的 BUG 或漏洞。那么除了升级之外,如果我们想卸载宝塔,并且使用其他的建站环境的话,可以看一下本文整理的宝塔面板一键卸载重装教程。目前,卸载方法主要包括直接重装系统法以及使用宝塔提供的卸载命令进行卸载的方法。一、直接重装系统以实现卸载宝塔面板重装系统很容易,直接在云服务器管理中点重装,选择操作系统即可重装,主流云服务商都有这功能。等重装完之后,所有数据都没了,自然也就实现了卸载的目的。但是,重装之前,一定要做好数据备份,否则如果有重要的数据,丢失了就不好了。注意:如果是云服务器,我们可以利用快照备案,不过也并不是万能的,尽量把数据打包到本地备份,以防不测!二、使用卸载命令进行卸载宝塔面板宝塔官方有提供宝塔面板的卸载命令,使用这个卸载命令,我们就能将宝塔面板卸载掉。Ps:这里有一点需要注意的,如果卸载宝塔面板的同时,也希望将 Nginx、MySQL、PHP 等组件卸载掉,那么我们应该先在宝塔面板里面卸载掉以上软件后,再进行下面的步骤。登录 VPS 后,我们复制以下卸载命令并回车执行,即可一键卸载宝塔面板:/etc/init.d/bt stop && chkconfig --del bt && rm -f /etc/init.d/bt && rm -rf /www/server/panel三、使用卸载脚本进行卸载宝塔面板除了使用卸载命令进行卸载外,我们也可以使用官方提供的卸载脚本进行卸载,同时这个卸载脚本会更暴力一些。同样也是需要通过 SSH 登录搬瓦工 VPS 的,登录后,我们复制以下命令,然后依次执行即可:wget http://download.bt.cn/install/bt-uninstall.sh sh bt-uninstall.sh执行第二行命令后,会让我们进行以下选择:1、卸载宝塔2、卸载宝塔及运行环境(可能影响站点、数据库及其他数据)如果是单纯的卸载宝塔,需要保留 LNMP 等运行环境,则选择 1 选项;如果是想卸载宝塔和运行环境,则选择 2 选项。按照自己的需求,选择对应的选择,回车后即可卸载宝塔面板。本文来源:https://yuntue.com/post/30105.html | 云服务器网,转载请注明出处!
2023年02月14日
111 阅读
0 评论
0 点赞
2023-02-14
最详细的宝塔安装教程
宝塔安装教程(一)服务器(二)进入 shell 页面(三)在 shell 页面安装宝塔(四)登陆宝塔(一)服务器先搞台服务器,1 核 2G 就可以了 我们选择安装在服务器上,我选择的服务器是阿里云 有了服务器后先设置好登陆密码 (二)进入 shell 页面直接远程连接服务器,方法有很多,不一一展示了 这边我就直接用浏览器演示输入下面代码切换至 root 账号//切换root账号sudo su root(三)在 shell 页面安装宝塔宝塔官网:https://www.bt.cn 点击立即安装 复制代码// 最好是去官网看最新代码yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh回车下载安装,遇到(y/n)输入 y,也就是 yes,继续安装 看到黄色字体后(_是颜色哈_),就代表安装完成了 把这部分代码复制下来保存好,我们使用外网进入宝塔在 shell 里,复制粘贴我都用的是鼠标右键(有更好的快捷键可以留言告诉我,谢谢各位大佬)对了我们还要放行 8888 端口直接去服务器控制台,放行 8888 端口(四)登陆宝塔在浏览器输入我们刚才复制保存的外网链接 使用刚才的账号密码登陆即可这是宝塔推荐的一些 LAMP,选择推荐的一键安装就好了 **到这里本教程也就结束了 谢谢各位观看,如果有错误的地方,可以留言告知**
2023年02月14日
97 阅读
0 评论
0 点赞
2023-02-14
青龙面板集合仓库(不断更新)安装青龙面板开启京东白嫖模式
之前网上有只要扫码一下就可以每天领上百京豆和一些红包的活动,后来呢,扫码就失效了,但是呢,这背后的技术还没有失效。这白嫖活动其实就是用脚本代替我们去参与京东的各种活动,去获取红包和京豆,而这些脚本是部署在电脑上,定时去执行的,接下来,根据网上的大佬的教程,我们也来实现一下。一、安装前的准备青龙面板是使用Docker来安装的,理论上,只要有可以运行 Docker 的电脑都可以进行安装。但是呢,因为脚本要定时运行,所以最好安装在服务器上,或者一直不关机的的电脑上。有人说使用树莓派等开发板能够实现吗,理论上好像也可以,但是因为树莓派是 arm 架构的,得找到相应的 arm 版的青龙面板镜像。个人建议购买一台服务器,阿里云、腾讯云都有很便宜的服务器,那种一核一 G 的服务器完全够用,我买的是一核 2G 的腾讯云服务器,一年也就 74 元,运气好的话,一个月就回本了。服务器最好选用 Linux 服务器,搭建只需要执行些简单的命令即可。接下来的教程都是使用Linux 服务器进行搭建的。二、安装 docker已经安装 Docker 的可以跳过这一步,没有安装的可以使用以下脚本命令直接安装 Docker。curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun安装 Docker 后记得启动 Docker,并配置开机启动sudo systemctl start docker #启动Docker sudo systemctl enable docker #配置开机自启三、拉取镜像docker pull whyour/qinglong:latest四、部署镜像(二选一)4.1 docker命令部署docker run -dit \ -v $PWD/ql/config:/ql/config \ -v $PWD/ql/log:/ql/log \ -v $PWD/ql/db:/ql/db \ -v $PWD/ql/repo:/ql/repo \ -v $PWD/ql/raw:/ql/raw \ -v $PWD/ql/scripts:/ql/scripts \ -v $PWD/ql/jbot:/ql/jbot \ -p 5700:5700 \ --name qinglong \ --hostname qinglong \ --restart always \ whyour/qinglong:latest4.2 docker-compose部署## 安装docker-compose sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ## 创建docker-compose.yml version: "3" services: qinglong: image: whyour/qinglong:latest container_name: qinglong restart: unless-stopped tty: true ports: - 5700:5700 environment: - ENABLE_HANGUP=true - ENABLE_WEB_PANEL=true volumes: - ./config:/ql/config - ./log:/ql/log - ./db:/ql/db - ./repo:/ql/repo - ./raw:/ql/raw - ./scripts:/ql/scripts - ./jbot:/ql/jbot - ./ninja:/ql/ninja labels: - com.centurylinklabs.watchtower.enable=false ## 到docker-compose.yml目录启动容器 docker-compose up -d五、打开防火墙青龙面面板通过网页访问,走的是 5700 端口,记得在服务器防火墙设置中放行 5700 端口六、配置青龙面板1、登录青龙面板面板地址:http://服务器IP:5700 默认账号:admin 默认密码:adminadmin当您使用以上密码首次登录后,面板会显示已初始化密码。请在 SSH 终端内查看新密码(输出的结果就是实际的密码了{“username”:“admin”,“password”:""),查看代码如下docker exec -it qinglong cat /ql/config/auth.json2、青龙面板基础命令青龙面板基础命令(容器内执行或者新建定时任务时忽略 docker exec -it qinglong),一般不需要使用,大部分操作可以在网页中实现,此处仅做记录。#更新青龙 docker exec -it qinglong ql update #更新青龙并编译 docker exec -it qinglong ql restart #拉取自定义仓库 docker exec -it qinglong ql repo https://ghproxy.com/https://github.com/whyour/hundun.git "quanx" "tokens|caiyun|didi|donate|fold|Env" #拉取单个脚本 docker exec -it qinglong ql raw https://ghproxy.com/https://raw.githubusercontent.com/moposmall/Script/main/Me/jx_cfd.js #删除7天前的所有日志 docker exec -it qinglong ql rmlog 7 #启动bot docker exec -it qinglong ql bot #导出互助码 docker exec -it qinglong ql code #通知测试 docker exec -it qinglong notify test test #立即执行脚本 docker exec -it qinglong task test.js now #并行执行脚本 docker exec -it qinglong task test.js conc3、添加库青龙面板本身不具备京东脚本的功能,只是一个管理和执行相应脚本的平台,接下来使用青龙面板拉去一些库。登录面板后选择定时任务->添加任务 添加任务的界面如下图所示,名称随便起,命令待会给出,定时规则自定义,我使用的是0 0 0 * * *,代表每天零点执行脚本。我们添加的脚本是拉取脚本的脚本,实际执行的脚本会在我们添加的脚本运行后自动添加。 4、拉取各种库的脚本如下### 签到集合库 各平台签到,项目地址 https://github.com/Sitoi/dailycheckin 某东,目前还在维护的,集合库(包含开卡)拉其一就好,太多重复请求可能黑。 开卡是店铺会员卡,邀请好友开卡得豆的活动,开多了会有很多垃圾短信。 天天喊让人上他车的就是为了做他工具人助力各活动。 ### jdpro(集合库) 点评:更新勤,无重复,互助模式可选,有一键配置适合小白。 项目地址:https://github.com/6dylan6/jdpro.git 国内机用下面指令(带代理): ql repo https://js.dayplus.xyz/https://github.com/6dylan6/jdpro.git "jd_|jx_|jddj_" "backUp" "^jd[^_]|USER|JD|function|sendNotify" 国外机用下面指令: ql repo https://github.com/6dylan6/jdpro.git "jd_|jx_|jddj_" "backUp" "^jd[^_]|USER|JD|function|sendNotify" ### KR(集合库) 点评:更新勤,无重复,内部互助,顺序不可选。 项目地址:https://github.com/KingRan/KR.git ql repo https://github.com/KingRan/KR.git "jd_|jx_|jdCookie" "activity|backUp" "^jd[^_]|USER|utils|function|sign|sendNotify|ql|JDJR" ### yydspure(集合库) 点评:更新一般,比较多失效的。 ql repo https://github.com/okyyds/yyds.git "jd_|jx_|gua_|jddj_|m |jdCookie" "activity|backUp" "^jd[^_]|USER|function|utils|sendNotify|ZooFaker_Necklace.js|JDJRValidator_|sign_graphics_validate|ql|JDSignValidator" "master" ### Faker3(集合库) 点评:更新算勤,比较多重复和失效的。 ql repo https://github.com/shufflewzc/faker3.git "jd_|jx_|gua_|jddj_|jdCookie" "activity|backUp" "^jd[^_]|USER|function|utils|sendNotify|ZooFaker_Necklace.js|JDJRValidator_|sign_graphics_validate|ql|JDSignValidator" "main" ### 【619】【集合库,可选】 ql repo https://github.com/gys619/jdd.git "jd_|jx_|jddj_|gua_|getJDCookie|wskey" "activity|backUp" "^jd[^_]|USER|utils|ZooFaker_Necklace|JDJRValidator_|sign_graphics_validate|jddj_cookie|function|ql|magic|JDJR|JD" "main" ### 【zero205】【集合库,拉KR即可】 ql repo https://github.com/zero205/JD_tencent_scf.git "jd_|jx_|jdCookie" "backUp|icon" "^jd[^_]|USER|sendNotify|sign_graphics_validate|JDJR|JDSign|ql" "main"仓库中的脚本可能会重复,但是没事,建议都拉。拉完之后记得运行,不运行的话要等到你设置好的时间才会自动执行。运行后会自动拉去一些执行活动的脚本。七、登录京东账号之前登录京东账号很简单,扫个码就实现了,那是通过ninjia来实现的,但是现在不管用了,需要我们手动添加。手动添加的话有很多种方法,可以通过网页查看源代码,也可以通过抓包,原理都是一样,都是为了获取 Cookie,这里介绍一种更为简单的方法,只需要获取验证码登录,就可以获取 Cookie。软件的下载地址放蓝奏云了,需要的自取。 蓝奏云地址:电脑获取验证码抓京东 ck 运行软件获取验证码 复制获取的 Cookie,Cookie 千万别泄露,Cookie 千万别泄露,Cookie 千万别泄露,重要的事情说三遍。然后打开青龙面板,选择环境变量->添加变量,名称为JD_COOKIE,值为刚复制的 COOKIE,备注自己填,别的不需要动。添加后点确定就可以,如果需要添加多个账号,只需要获取多个 COOKIE 添加上去就可以了,名称仍然为JD_COOKIE。添加好京东账号之后就可以去执行脚本了,如果等不及想尝试,可以自己触发脚本运行,否则就会在相应的时间执行。 八、Others1、将京东账号绑定微信该脚本执行时会执行京东极速版的一个任务,那个任务执行时会往绑定的微信里面打钱,虽然不多,一天几毛,但是积少成多嘛!有的账号即使绑定微信了也不会打钱,不知道为啥2、下载京喜不是打广告,也没钱啊。这个脚本会帮你领各种红包,大概两三天就能够弄到十来块,这些红包是无门槛的,但是大部分只能够在京喜里面使用。京东里面的商品在惊喜同样可以结算,美滋滋!3、打开京东京喜各种活动什么农场啊,牧场啊,都给打开,这些东西一般第一次需要人手动选择商品,然后等待脚本执行就好了。
2023年02月14日
236 阅读
0 评论
0 点赞
2023-02-14
专为折腾而生!老旧电脑安装PVE虚拟机保姆教程
专为折腾而生!老旧电脑安装 PVE 虚拟机保姆教程这几天玩VMware 虚拟机上瘾,感觉特别有意思。然而我其实并不满足于只是在这种软件层面上玩玩,而想挑战更高级的玩法,比如说玩玩可以安装在实体机上的虚拟机系统~~说直接点就是我想在我闲置多年的笔记本上折腾下虚拟机,让它继续发挥它的价值(简单来说我就是闲得慌~~)我其实早在很多年前就玩过同是 VMware 公司出的一款虚拟机系统,叫做【VMware vSphere Hypervisor】,简称【ESXi】,但是这个这个虚拟机主要是多用于企业级主机或者服务器上,所以在配置要求上比较高,我之前的笔记本虽说装上了,但是用起来非常卡顿,最主要的是,这个系统还是收费的,这对于我一个天天吃泡面酸菜的搬砖工,很明显是极不友好的。于是,我又找到了一个适合我们白 P 党练手的虚拟机系统,它就是今天要给大家展示的【Proxmox virtualization environment】系统,简称【PVE】。PVE 简介简单的说,PVE 是一个基于 Debian 的 linux 系统,内置了一套虚拟机管理工具,并提供了 web 管理页面,让我们可以非常简单的通过网页管理虚拟机。介绍:PVE 是专业的虚拟机平台,并且还是永久免费的开源平台。它提供一个家庭设备集中管理平台,你可以利用它安装任何你想要的系统,如 win 系统(Win7、10、PE、XP 等)、linux 系统(黑群晖、centos、路由 openwrt、ROS、LEDE、ubuntu 等),并且它还是一款在低配置的小主机上都能轻松运行的一款轻量级平台,可玩性非常高!一般来说,PVE 系统适合安装的环境非常多,不管是企业用户有工作站需求安装虚拟机平台,还是个人用户,有软路由或者小主机,都可以尝试安装 PVE 系统来拓展更多功能与玩法。所以今天我就教大家以闲置的的笔记本电脑来安装 PVE 系统,然后来挖掘它更多有意思的玩法。安装前的准备主机(笔记本)配置要求:CPU:64 位 CPU( Intel EMT64 或 AMD64),且支持 Intel VT/AMD-V 虚拟化,如果需要硬件直通,需要 CPU 支持 VD (b75 芯片组以上)内存:2GB 以上即可,如果同时运行的虚拟机很多,建议加大内存。硬盘:理论上 16G 以上硬盘即可,但是你后期安装的虚拟机系统肯定不止一个,所以越大越好。网卡:至少一个网口,多网口的更佳!如果是用网卡直通的,还要求使用 Intel 品牌的网卡。由此可见,目前市面上 99%的闲置电脑都可以顺利的安装到 PVE 虚拟机系统,除非你的机器拿去换不锈钢盘都没人收了。需要重点声明的是:等下安装 PVE 虚拟机系统会清空你的电脑硬盘,请务必提前做好备份,切记!!!软件准备:PVE 固件(镜像文件)官网链接:Download Proxmox software, documentation, agreements写盘工具(Ventoy,软碟通或者其它都可以,这里我以软碟通为例)软碟通官网下载:最新 UltraISO 官方免费下载 - UltraISO 软碟通中文官方网站其它:一个 8G 以上 U 盘,请务必备份好数据,等下安装会清空 U 盘,切记!!!安装操作步骤安装思路:下载最新 PVE 系统镜像,然后通过写盘工具(软碟通)写到准备好的 U 盘当中,在把写好的 U 盘插入需要安装 PVE 虚拟机系统的主机或者电脑的 USB 接口,开机进 BIOS,设置第一启动顺序,选择 U 盘启动,然后再将 U 盘上的系统文件写到主机或者电脑中。一句话概括就是:和我们安装 Windows 系统几乎一样!PVE 启动盘制作🔺 先在上面给出的 PEV 官网进行系统镜像下载,直接选择最前面的就是最新的系统镜像。如果你那边下载比较慢,建议选择后面一个带【BitTorrent】的文件来下载,使用种子下载软件(某雷,或者 Qb)基本是满速下载。🔺 然后就是将下载下来的镜像文件用软碟通写到 U 盘中。操作步骤其实很简单,之前演示过多次,这里就不再重复了。搞定之后就可以拔掉 U 盘,然后把它插到需要安装 PVE 系统的电脑中,进行安装操作了。PVE 虚拟机安装操作🔺 将写入 PVE 镜像的启动 U 盘插入需要安装 PVE 主机或者电脑的 USB 口上,然后按快捷键选择从 U 盘引导系统启动。🔺 选择默认的【Install Proxmox VE】进行安装🔺 安装 Proxmox VE 界面,不用管,数秒即可完成。🔺 说的啥咱也看不懂,直接点击右下角的【I agree】按钮吧🔺PVE 安装位置界面。你有多个的话直接选择你要安装的那个即可,我这里就一个,保持默认就好,然后直接点击【Next】按钮🔺 这个界面在【Country】后面的方框内输入“ China”,其它默认,继续点击【Next】按钮🔺 填写密码,一定别忘记了,等下你登录后台界面会用到。邮箱建议填写真实邮箱,如果有啥问题邮箱可能是你最后的救命稻草。输入完成后点击【Next】按钮进入下一步操作。🔺 然后这步很重要,也就是 PVE 系统的安装设置分配 IP、掩码、网关。完成之后继续【Next】Management Interface:网口选择,一般是针对有多网口设计的主机或者电脑,根据自己的需要选择即可Hostname:主机名,可以填写自己的真实域名(还记得之前我教大家申请免费域名吗),后期可以通过域名远程访问。没有就保持默认吧。IP Address:访问管理的 IP 地址,一定要改成你路由器 DHCP 分配的同一网段 IP,这样局域网才能直接访问。Getway:网关,根据实际填写。我这里直接填写我家的华硕路由器网关。DNS Server:DNS 服务器,根据实际填写,我这里保持默认。🔺 确认 PVE 系统安装信息无误后,点击【Install】按钮进行系统安装🔺PVE 系统安装界面,我们只需要等待进度条跑完即可,完成之后系统会自动重启。记得重启的时候直接拔掉 U 盘,有的电脑会默认的又进入 U 盘系统了。🔺 重启之后的启动项界面,不用管,默认的就是我们安装的 PVE 系统,稍等一会就会自动静茹。🔺 等到这个界面的出现,恭喜你!PVE 系统安装成功!而图中红色方框就是你的 PVE 系统控制台的 URL 访问地址。我们只需要用局域网内的另一台电脑在浏览器中输入这个 URL 就可以访问 PVE 的控制台了!控制台访问🔺 打开局域网内的另一台电脑,浏览器输入上面出现的 PVE 系统控制台的 URL 访问地址,浏览器可能会弹出隐私错误的提示,不用理会,点击【高级】,选择【继续访问】即可。🔺 来到登录界面。用户名输入:root,密码输入之前系统安装时你设置的密码,语言选择:chinese。勾选【保存用户名】,完成之后点击【登录】🔺OK!终于来到了 PVE 系统管理界面!至此,PVE 虚拟机系统安装成功!后期我还会用它来折腾更多有意思的玩法,有兴趣的小伙伴记得关注我!
2023年02月14日
78 阅读
0 评论
0 点赞
2023-02-13
Mysql 创建用户,指定数据库
1.远程登录 mysqlmysql -h ip -u root -p 密码2.创建用户格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by “密码”;例 1:增加一个 test1 用户,密码为 123456,可以在任何主机上登录,并对所有数据库有查询,增加,修改和删除的功能。需要在 mysql 的 root 用户下进行mysql>grant select,insert,update,delete on *.* to test1@'%' identified by '123456'; mysql>flush privileges;例 2:增加一个 test2 用户,密码为 123456,只能在 192.168.2.12 上登录,并对数据库 student 有查询,增加,修改和删除的功能。需要在 mysql 的 root 用户下进行mysql>grant select,insert,update,delete on student.* to test2@192.168.2.12 identified by '123456'; mysql>flush privileges;例 3:授权用户 test3 拥有数据库 student 的所有权限mysql>grant all privileges on student.* to test3@localhost identified by ’123456′; mysql>flush privileges;3.修改用户密码mysql>update mysql.user set password=password(’123456′) where User=’test1′ and Host=’localhost’; mysql>flush privileges;4.删除用户mysql>delete from user where user=’test2′ and host=’localhost’; mysql>flush privileges;5.删除数据库和删除表mysql>drop database 数据库名; mysql>drop table 表名;6.删除账户及权限drop user 用户名@’%’ drop user 用户名@localhostgrant 详细解析如下:MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。grant select on testdb.* to common_user@'%'; grant insert on testdb.* to common_user@'%'; grant update on testdb.* to common_user@'%'; grant delete on testdb.* to common_user@'%';或者,用一条 MySQL 命令来替代:grant select, insert, update, delete on testdb.* to common_user@'%'二、grant 数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限。grant 创建、修改、删除 MySQL 数据表结构权限。grant create on testdb.* to developer@'192.168.0.%'; grant alter on testdb.* to developer@'192.168.0.%'; grant drop on testdb.* to developer@'192.168.0.%';grant 操作 MySQL 外键权限。grant references on testdb.* to developer@'192.168.0.%';grant 操作 MySQL 临时表权限。grant create temporary tables on testdb.* to developer@'192.168.0.%';grant 操作 MySQL 索引权限。grant index on testdb.* to developer@'192.168.0.%';grant 操作 MySQL 视图、查看视图源代码 权限。grant create view on testdb.* to developer@'192.168.0.%'; grant show view on testdb.* to developer@'192.168.0.%';grant 操作 MySQL 存储过程、函数 权限。grant create routine on testdb.* to developer@'192.168.0.%'; — now, can show procedure status grant alter routine on testdb.* to developer@'192.168.0.%'; — now, you can drop a procedure grant execute on testdb.* to developer@'192.168.0.%';三、grant 普通 DBA 管理某个 MySQL 数据库的权限。grant all privileges on testdb to dba@'localhost'其中,关键字 “privileges” 可以省略。四、grant 高级 DBA 管理 MySQL 中所有数据库的权限。grant all on *.* to dba@'localhost'五、MySQL grant 权限,分别可以作用在多个层次上。grant 作用在整个 MySQL 服务器上:grant select on _._ to dba@localhost; — dba 可以查询 MySQL 中所有数据库中的表。 grant all on _._ to dba@localhost; — dba 可以管理 MySQL 中的所有数据库grant 作用在单个数据库上:grant select on testdb.\* to dba@localhost; — dba 可以查询 testdb 中的表。grant 作用在单个数据表上:grant select, insert, update, delete on testdb.orders to dba@localhost;grant 作用在表中的列上:grant select(id, se, rank) on testdb.apache_log to dba@localhost;grant 作用在存储过程、函数上:grant execute on procedure testdb.pr_add to dba@localhost; grant execute on function testdb.fn_add to dba@localhost;六、查看 MySQL 用户权限查看当前用户(自己)权限:show grants;查看其他 MySQL 用户权限:show grants for dba@localhost;七、撤销已经赋予给 MySQL 用户权限的权限。revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:grant all on *.* to dba@localhost; revoke all on *.* from dba@localhost;八、MySQL grant、revoke 用户权限注意事项grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 “grant option“grant select on testdb.\* to dba@localhost with grant option;这个特性一般用不到。实际中,数据库权限最好由 DBA 来统一管理。=========================================================1.创建用户并授权grant 语句的语法:grant privileges (columns) on what to user identified by “password” with grant option要使用该句型,需确定字段有: privileges 权限指定符权限允许的操作 alter 修改表和索引 create 创建数据库和表 delete 删除表中已有的记录 drop 抛弃(删除)数据库和表 index 创建或抛弃索引 insert 向表中插入新行 reference 未用 select 检索表中的记录 update 修改现存表记录 file 读或写服务器上的文件 process 查看服务器中执行的线程信息或杀死线程 reload 重载授权表或清空日志、主机缓存或表缓存。 shutdown 关闭服务器 all 所有; all privileges同义词 usage 特殊的“无权限”权限以上权限分三组: 第一组:适用于数据库、表和列如:alter create delete drop index insert select update 第二组:数管理权限 它们允许用户影响服务器的操作 需严格地授权 如:file process reload shut* 第三组:权限特殊 all 意味着“所有权限” uasge 意味着无权限,即创建用户,但不授予权限 columns 权限运用的列(可选)并且你只能设置列特定的权限。如果命令有多于一个列,应该用逗号分开它们。 what 权限运用的级别。权限可以是全局,定数据库或特定表. user 权限授予的用户,由一个用户名和主机名组成,许两个同名用户从不同地方连接.缺省:mysql用户password赋予用户的口令(可选),如果你对用户没有指定 identified by 子句,该用户口令不变. 用 identified by 时,口令字符串用改用口令的字面含义,grant 将为你编码口令.注:set password使用password()函数with grant option用户可以授予权限通过 grant 语句授权给其它用户(可选) 实例讲解:grant all on db_book.* to test@kk.com identified by '123456' 只能在本地连接 grant all on db_book.* to test@vpn.kk.com identified by '123456' 允许从此域连接 grant all on db_book.* to test@% identified by '123456' 允许从任何主机连接 注:”%”字符起通配符作用,与like模式匹配的含义相同。 grant all on db_book.* to test@%.kk.com identified by '123456'; 允许test从kk.com域的任何主机连接 grant all on db_book.* to test@192.168.1.189 identified by '123456' grant all on db_book.* to test@192.168.1.% identified by '123456' grant all on db_book.* to test@192.168.1.0/17 identified by '123456'允许从单 IP 段 IP 或一子网 IP 登陆 注:有时 用户@IP 需用引号 如 ‘test@192.168.1.0/17’grant all on *.* to test@localhost identified by '123456' with grant option添加超级用户 admin 可在本地登陆做任何操作.grant reload on *.* to admin@localhost identified by '123456'; 只赋予reload权限 grant all on db_book to admin@kk.com indetified by '123456'; 所有权限 grant select on db_book to admin@% indetified by '123456'; 只读权限 grant select,insert,delete,update on db_book to admin@kk.com indetified by '123456'; 只有select,insert,delete,update的权限 grant select on db_book.storybook to admin@localhost indetified by '123456'; 只对表 grant update(name) on db_book.storybook to admin@localhost; 只对表的name列 密码不变 grant update(id,name,author) on db_book.storybook to admin@localhost; 只对表的多列 grant all on book.* to ''@kk.com; 允许kk.com域中的所有用户使用库book grant all on book.* to admin@%.kk.com indetified by '123456' with grant option; 允许admin对库book所有表的管理员授权.2.撤权并删除用户 revoke的语法类似于grant语句 to用from取代,没有indetifed by和with grant option子句. 如下: revoke privileges (columns) on what from user user:必须匹配原来grant语句的你想撤权的用户的user部分。 privileges:不需匹配,可以用grant语句授权,然后用revoke语句只撤销部分权限。 revoke语句只删权限不删用户,撤销了所有权限后user表中用户记录保留,用户仍然可以连接服务器. 要完全删除一个用户必须用一条delete语句明确从user表中删除用户记录: delete from user where user=”admin” flush privileges; 重载授权表注:使用 grant 和 revoke 语句时,表自动重载,而你直接修改授权表时不是.实例:1.创建数据库CREATE DATABASE `fypay` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;2.为创建的数据库增加用户 fypaygrant create,select,insert,update,delete,drop,alter on fypay.* to fypay@”%” identified by “testfpay”;3.删除 fypay 用户delete from user where user=”fypay” drop user fypay@localhost4.刷新数据库flush privileges;
2023年02月13日
56 阅读
0 评论
0 点赞
1
...
24
25
26
27