数据库突然无法链接,无法访问

在公司运行的项目里,数据库突然无法链接,无法访问。利用工具链接数据库一样访问失效。
不排除:黑客串改了链接信息 或 直接删库 【当然这个是最严重结局】
这是我用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
2
3
#这将显示以MB为单位的内存使用情况,包括已用内存、可用内存、缓冲区和交换空间。
#在终端中输入以下命令可以查看服务器的内存使用情况:
free -m

发现交换空间为0,好家伙虚拟内存被冲爆了,那就是内存不够了。

连忙查看进程,因为该系统都是php在运行,所以先看看php进程

1
ps -aux|grep php

发现一列列的php进程。
基本确定就是php进程堆积导致mysql无法启动

1
2
3
4
5
# 杀死所有PHP进程
killall php-fpm

#重启php进程
/etc/init.d/php-fpm restart

重启后再次查看交换空间 发现直接归零了,再次重启mysql

1
/etc/init.d/mysql restart

启动成功,访问项目运行再次正常了。

后面就是优化该项目系统,系统项目执行进程很多时间过长导致僵尸进程一直保留,优化代码很有必要。(该项目特老旧,还是一个小白写的代码后面懒猫改差点没魂升天)

新项目上线出现的小问题

有个新项目,是一个小伙伴负责,当前也要提交线上了。(给他练练手一个新的服务器,本地运行都ok,部署到线上发现很多问题)以下是我帮忙查看最后解决问题,新手小白很容易出错的

  1. 因为两套域名访问,导致提交忘记修复 【以后的处理是,该类配置文件不放到提交代码内,直接提交服务器】

  2. m端域名解析,nginx要处理好伪静态,否则是无法访问的

  3. 控制器的访问本地没有大小写问题,但到了线上就有【下次一定要注意】

  4. 如果访问不是404,而是php 内错误页面,要打开php错误访问 【快速清晰的判断,并合理利用工具】

VUE编译访问域名后带#

vue 如何编译 不带域名后面#

在Vue中,可以使用vue-router来处理路由。默认情况下,当我们点击链接时,URL会被添加到历史记录并且页面将重新加载。
要想去除URL中的域名部分(包括#),需要进行配置。首先,确保已经安装了vue-router库。然后,按照以下步骤操作:
创建一个新文件 router/index.js,该文件将存放路由相关的配置信息。

最重要的就是要更改路由模式,由hash(哈希)变为history(历史模式)

导入所需模块:

1
2
import Vue from 'vue'
import Router from 'vue-router'

注册路由器:

1
Vue.use(Router)

定义路由表:

1
2
3
const routes = [
{ path: '/', component: Home }, // 这里的Home为组件名称或者对应的组件引用
]

创建路由实例:

1
2
3
4
5
export default new Router({
mode: 'history', // 设置路由模式为 history
base: process.env.BASE_URL, // 基本 URL,根据项目需求修改
routes
})

nginx配置修改

在指定的访问域名下配置.conf里加入

1
2
3
location / {  
try_files $uri $uri/ /index.html;
}

移动端如何浏览EXCEL、word、ppt、pdf等文件在线预览?

简单的前端处理方式 (不建议)

或者JS
window.open(文档地址); //新建窗口打开链接预览
window.location.href = 文档地址; //本页面内跳转链接实现预览

这种方式在不同浏览器上表现不一样,部份手机浏览器直接不能直接不能打开或是表现为下载,基本不实用,如果预览PDF,可以使pdf.js这样的纯JS库但是实际场景用时要做各种格式判断浏览判断麻烦死了。

如果是微信小程序,可以使用微信接口:downloadFile和openDocument

1
2
3
4
5
6
7
8
9
10
11
12
13
wx.downloadFile({
// 示例 url,实际不存在
url: 'http://test.com/testfile.pdf',
success: function (res) {
const filePath = res.tempFilePath
wx.openDocument({
filePath: filePath,
success: function (res) {
console.log('打开文档成功')
}
})
}
})

如果明确只有微信使用可以考虑,只是如果有浏览直接使用或钉钉之类不行,而且如果后面更换到浏览器或WEBAPP又要更换也挺麻烦的。

pfile的文件预览工具 (举荐)

1
window.open('http://www.pfile.com.cn/api/profile/onlinePreview?url='+encodeURIComponent(“文档地址”));

其实本质是用 http://www.pfile.com.cn网址,他做的工具,打开使用页面十分干净清晰。
唯一要说的缺点,那只能是打开的不是我们自己的域名,没发二次开发。

UniApp集成PDF在线预览功能

  1. 导入PDF.js库:首先,在UniApp项目中引入PDF.js库,这是一个开源的JavaScript库,用于在网页中渲染和预览PDF文件。
  2. 实现PDF预览组件:在UniApp项目中创建一个PDF预览组件,该组件包含了PDF.js库所需的相关代码和样式,用于展示PDF文件内容。
  3. 调用PDF预览组件:在需要预览PDF文件的页面中,通过调用PDF预览组件,并传入PDF文件的URL或二进制数据,即可在应用内实现PDF文件的在线预览功能。
avatar
懒觉猫先生
欢迎你们的到来!
关注我吧
最新文章
最新评论
正在加载中...
网站资讯
文章数目 :
176
已运行时间 :
本站总字数 :
119.7k
本站访客数 :
本站总访问量 :
最后更新时间 :