数据库突然无法链接,无法访问
在公司运行的项目里,数据库突然无法链接,无法访问。利用工具链接数据库一样访问失效。
不排除:黑客串改了链接信息 或 直接删库 【当然这个是最严重结局】
这是我用finalshell 链接到项目的服务器查看。
首先服务器内部看看mysql是否在运行
1 | mysql -u[username] -p |
发现指令执行失败,mysql未被启动。
当下可以初步确定mysql进程中断了,需要重启。
1 | /etc/ini.d mysql restart |
报错:
ERROR! MySQL server PID file could not be found!
mysql 无法启动,那就要看看其他因素导致mysql启动不了,如系统内存不够导致无法启动程序。
1 | #这将显示以MB为单位的内存使用情况,包括已用内存、可用内存、缓冲区和交换空间。 |
发现交换空间为0,好家伙虚拟内存被冲爆了,那就是内存不够了。
连忙查看进程,因为该系统都是php在运行,所以先看看php进程
1 | ps -aux|grep php |
发现一列列的php进程。
基本确定就是php进程堆积导致mysql无法启动
1 | # 杀死所有PHP进程 |
重启后再次查看交换空间 发现直接归零了,再次重启mysql
1 | /etc/init.d/mysql restart |
启动成功,访问项目运行再次正常了。
后面就是优化该项目系统,系统项目执行进程很多时间过长导致僵尸进程一直保留,优化代码很有必要。(该项目特老旧,还是一个小白写的代码后面懒猫改差点没魂升天)
新项目上线出现的小问题
有个新项目,是一个小伙伴负责,当前也要提交线上了。(给他练练手一个新的服务器,本地运行都ok,部署到线上发现很多问题)以下是我帮忙查看最后解决问题,新手小白很容易出错的
因为两套域名访问,导致提交忘记修复 【以后的处理是,该类配置文件不放到提交代码内,直接提交服务器】
m端域名解析,nginx要处理好伪静态,否则是无法访问的
控制器的访问本地没有大小写问题,但到了线上就有【下次一定要注意】
如果访问不是404,而是php 内错误页面,要打开php错误访问 【快速清晰的判断,并合理利用工具】
VUE编译访问域名后带#
vue 如何编译 不带域名后面#
在Vue中,可以使用vue-router来处理路由。默认情况下,当我们点击链接时,URL会被添加到历史记录并且页面将重新加载。
要想去除URL中的域名部分(包括#),需要进行配置。首先,确保已经安装了vue-router库。然后,按照以下步骤操作:
创建一个新文件 router/index.js,该文件将存放路由相关的配置信息。
最重要的就是要更改路由模式,由hash(哈希)变为history(历史模式)
导入所需模块:
1 | import Vue from 'vue' |
注册路由器:
1 | Vue.use(Router) |
定义路由表:
1 | const routes = [ |
创建路由实例:
1 | export default new Router({ |
nginx配置修改
在指定的访问域名下配置.conf里加入
1 | location / { |
移动端如何浏览EXCEL、word、ppt、pdf等文件在线预览?
简单的前端处理方式 (不建议)
或者JS
window.open(文档地址); //新建窗口打开链接预览
window.location.href = 文档地址; //本页面内跳转链接实现预览
这种方式在不同浏览器上表现不一样,部份手机浏览器直接不能直接不能打开或是表现为下载,基本不实用,如果预览PDF,可以使pdf.js这样的纯JS库但是实际场景用时要做各种格式判断浏览判断麻烦死了。
如果是微信小程序,可以使用微信接口:downloadFile和openDocument
1 | wx.downloadFile({ |
如果明确只有微信使用可以考虑,只是如果有浏览直接使用或钉钉之类不行,而且如果后面更换到浏览器或WEBAPP又要更换也挺麻烦的。
pfile的文件预览工具 (举荐)
1 | window.open('http://www.pfile.com.cn/api/profile/onlinePreview?url='+encodeURIComponent(“文档地址”)); |
其实本质是用 http://www.pfile.com.cn
网址,他做的工具,打开使用页面十分干净清晰。
唯一要说的缺点,那只能是打开的不是我们自己的域名,没发二次开发。
UniApp集成PDF在线预览功能
- 导入PDF.js库:首先,在UniApp项目中引入PDF.js库,这是一个开源的JavaScript库,用于在网页中渲染和预览PDF文件。
- 实现PDF预览组件:在UniApp项目中创建一个PDF预览组件,该组件包含了PDF.js库所需的相关代码和样式,用于展示PDF文件内容。
- 调用PDF预览组件:在需要预览PDF文件的页面中,通过调用PDF预览组件,并传入PDF文件的URL或二进制数据,即可在应用内实现PDF文件的在线预览功能。