宝塔Linux数据库mysql5.5升级到5.7教程

您好,升级步骤如下
1、先为您的数据库备份,备份的时候要确保没有数据写入,然后把备份好的数据库下载到本地或者其它服务器上,防止数据丢失,有条件的可直接对服务器做磁盘快照,这里是备份好数据再停止数据库,因为面板上的备份是使用mysqldump命令备份,需要数据库在运行
2、备份好数据之后,停止数据库,稍等几分钟再卸载
3、安装8.0版本的MYSQL
4、操作完毕后在宝塔左侧数据库菜单内添加新的空数据库、然后导入先前备份的数据库
这样就可以升级成功了,不过要确保您mysql5.7中的数据在mysql8中也是兼容的,有时候两个版本之间的数据结构等还是有点差异,您事先可以用个测试机器安装mysql8,再导入mysql5.7的数据,看看是否能兼容。您在面板上升级好mysql8之后,导入数据,如果数据导入不全或者失败,先恢复到mysql5.7,然后测试好之后再升级
建议在您深夜等访客较少的时候升级。
升级过程中会重启数据库、如数据库原本存在表损坏等情况的话,
将会导致重启失败甚至数据丢失、务必做好数据库备份校验数据完整性后再进行升级。
如果您做了备份还不放心,建议您前往服务器商家控制台做个服务器快照,可随时回滚。
最近在折腾玩客云,刷了一个Armbian Linux系统,顺手将 root 远程登录也给禁用了,这里记录一下方法。
创建新管理账户
创建账户
useradd -m admin
设置密码
passwd admin
添加到系统管理员组
#CentOS/RHEL
usermod -aG wheel admin
#Debian/Ubuntu
usermod -aG sudo admin
禁用root账户
禁用 root 有很多中方式,这里简单列两种
1.修改 root 用户的登陆 Shell
vim /etc/passwd
找到 root 那一行,将末尾的/bin/bash 改为 /sbin/nologin。
比如
root:x:0:0:root:/root:/bin/bash
改为
root:x:0:0:root:/root:/sbin/nologin
此方法可以禁止 root 用户通过 shell 登录,即禁止 root 用户 ssh 远程登录和通过普通用户切换到 root 用户。
此后, root 用户登陆,会显示一条信息 “This account is currently not available” 。
这是默认消息,但是,你可以更改它并在文件中设置自定义消息 /etc/nologin.txt。
2.禁止 root 用户通过 ssh 登陆
编辑 sshd_config 将 PermitRootLogin 改为 no,如果是 PermitRootLogin 是注释状态,取消注释,然后将其设置为 no,如果不存在直接新增一条即可。
vim /etc/ssh/sshd_config
如:
PermitRootLogin no
然后重启 SSHD 服务让配置生效
systemctl restart sshd
此方法仅禁止用户通过 ssh 登录, 但仍可以使用普通用户切换到 root。
在进行phpmyadmin数据库备份恢复的时候,出现 #1115 – Unknown character set: ‘utf8mb4’ 的错误提示。
具体原因一般是高版本的数据库备份文件向低版本的数据库导入, 低版本的数据库中没有utf8mb4字符集,导致出错。
解决方法也很简单,除了升级当前数据库版本之外, 只需要将备份sql文件中的utf8mb4替换成utf8即可,保存后重新导入。
1)一键更换国内软件源脚本(请通过 SSH客户端工具
使用)
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh)
注意:
取消注释
。enabled=0
修改成 enabled=1
。2)安装过程,可以选择自己喜欢的源!
Docker 一键安装脚本如下:
bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh)
Docker CE:Docker Community Edition 镜像仓库,用于下载并安装 Docker 相关软件包。
Docker Hub:Docker Hub 镜像仓库,默认为官方提供的公共库,用于切换下载镜像时的来源仓库,简称镜像加速器。
注意:脚本集成安装 Docker Engine
与 Docker Compose
,可手动选择安装版本和下载源,还可手动选择镜像加速器,支持国内外服务器环境和 ARM
架构处理器环境使用。
2)安装截图
宝塔BT – 1970-01-01 服务器时间不同步引起的问题-解决方法
#防止Host头攻击start
if ($Host != 'maxwo.com')
{
return 403;
}
#防止Host头攻击end
对于用BT宝塔的小伙伴,很多时候建站基本程序都是用NGINX,用的没啥问题,但是大家有没有发现,如果你直接在地址栏上输入IP去访问的话,一般默认会返回一个BT宝塔的默认页面。如果你前面再加上https的话,那么估计就会看到你的网站了。因为宝塔默认没有禁止别人通过IP访问,因此很容易被扫描器扫描到,加上NGINX的通过IP访问HTTPS的话,会自动匹配第一个站点的SSL证书给IP使用,因此会造成IP泄露(证书带域名信息,网上有扫描全网IP并读取SSL证书中域名信息的方法)
那么,怎么设置BT宝塔Nginx设置只允许域名访问,禁止IP访问呢?特别涉及到HTTPS的话,这个源站IP如何防止泄漏呢?虾皮路也捣鼓了一下,分享一下过程。
为了安全起见,接下来需要做两个事情。
1、给IP配置上一张带错误域名的证书,防止泄露你自己的域名
2、禁止直接访问IP,将访问IP的请求,不管是HTTP还是HTTPS全部转错误页 返回状态码444 ERR_EMPTY_RESPONSE
两步其实可以合并成下面步骤操作:
首先在宝塔中创建一个默认站点,这里域名随意填写,只要不是你的域名就行。
这里我们可以输入一个 default.com ,或者你也可以输入123.com、456.com等等
我们需要将默认的站点改为default.com
给IP配置上一张带错误域名的证书,我们这里利用了CLOUDFLARE来作为错误证书颁发源,利用CF 接入域名,可以颁发15年的仅CF CDN网络体系承认的证书的功能。
大家可以使用我们已经生成的这张证书,反正只要域名不是你真实的域名就行了,提供如下。
公共证书(PEM格式)
-----BEGIN CERTIFICATE-----
MIIDITCCAsagAwIBAgIUTcEWLzynkLCFCoAC1iDH2vG3EkYwCgYIKoZIzj0EAwIw
gY8xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1T
YW4gRnJhbmNpc2NvMRkwFwYDVQQKExBDbG91ZEZsYXJlLCBJbmMuMTgwNgYDVQQL
Ey9DbG91ZEZsYXJlIE9yaWdpbiBTU0wgRUNDIENlcnRpZmljYXRlIEF1dGhvcml0
eTAeFw0xOTAxMTMxNDMxMDBaFw0zNDAxMDkxNDMxMDBaMGIxGTAXBgNVBAoTEENs
b3VkRmxhcmUsIEluYy4xHTAbBgNVBAsTFENsb3VkRmxhcmUgT3JpZ2luIENBMSYw
JAYDVQQDEx1DbG91ZEZsYXJlIE9yaWdpbiBDZXJ0aWZpY2F0ZTBZMBMGByqGSM49
AgEGCCqGSM49AwEHA0IABAg/hZ9lDHj/f+0jDRAN23TkNEqIi46mCGnwZVD3glxL
l+a1mpfXLHSEFTipnSyQgmvkPYzQGaEIFD0q6W/ZgMujggEqMIIBJjAOBgNVHQ8B
Af8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMAwGA1UdEwEB
/wQCMAAwHQYDVR0OBBYEFCEZF6Eyem01XPbgwr6DXLZV1qsQMB8GA1UdIwQYMBaA
FIUwXTsqcNTt1ZJnB/3rObQaDjinMEQGCCsGAQUFBwEBBDgwNjA0BggrBgEFBQcw
AYYoaHR0cDovL29jc3AuY2xvdWRmbGFyZS5jb20vb3JpZ2luX2VjY19jYTAjBgNV
HREEHDAaggwqLmRuc3BvZC5jb22CCmRuc3BvZC5jb20wPAYDVR0fBDUwMzAxoC+g
LYYraHR0cDovL2NybC5jbG91ZGZsYXJlLmNvbS9vcmlnaW5fZWNjX2NhLmNybDAK
BggqhkjOPQQDAgNJADBGAiEAnrequCk/QZOOrcPH6C3Hgcy4SPNUy5rQtku/aYkj
qQoCIQCN6IyYNiXuwG+8jUgJrveiirBjiz2jXZSTEfVAyibjTg==
-----END CERTIFICATE-----
密钥(KEY)
-----BEGIN PRIVATE KEY-----
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgK0HE3hTJQDg6p/fj
nS92eSuRKZEZ5F4grT6tWFKNYVmhRANCAAQIP4WfZQx4/3/tIw0QDdt05DRKiIuO
pghp8GVQ94JcS5fmtZqX1yx0hBU4qZ0skIJr5D2M0BmhCBQ9Kulv2YDL
-----END PRIVATE KEY-----
把以上两个证书直接复制到默认站点的ssl选项中的其他证书里面,注意不要搞反了。
以上操作完成后,修改默认站点的配置文件
在后面新增一个返回代码:
return 444;
如下图示意
这个时候,无论是通过http://IP访问,还是通过https://IP访问,都将返回无法访问的页面。如果用网上的漏洞扫描程序,扫到的这个IP的证书就是dnspod的了,这样你的IP就不会泄露。
#增加upstream代码块
upstream mydemo{
server 47.106.113.206:8080;
server 212.60.5.234:8080;
ip_hash;
}
server{
listen 80;
server_name localhost;
index index.html index.htm index.php;
root /www/server/phpmyadmin;
location / {
#重点在下面
proxy_pass http://mydemo;
}
在每个服务器的Tomcat-WebApps的文件夹中,新建一个demo文件夹,然后新建文件index.html,可以把每个服务器的ip地址写上去,能区分出服务器的不同即可。
如果你的服务器部署了宝塔面板,那么你可能遇到设置完成之后,怎么刷新都无法成功的情况。
在宝塔面板打开Nginx的配置文件,你会在最下面发现这样一行代码:#include /www/server/panel/vhost/nginx/*.conf;
这行代码是在网站设置的时候出现的,注释掉之后就可以成功负载均衡了,不注释能不能解决呢,我想是可以的,目前还在探索,有大佬能告知我一下也是非常感谢的。
有的朋友在租了阿里云的服务器ESC,在进行一系列的操作以后再次登录阿里云官网会显示如下界面:
在网上搜索了很多文章,发现最后还是不能成功登录,就在脑袋昏昏沉沉、苦于无奈的时候,突然看到这篇文章,您放心,解决问题的步骤我都帮您树梳理好了,跟着步骤来操作,问题迎刃而解。
原因分析:
无法登录是因为你在之前的操作中不小心输入了登录掩码,所以是登录掩码在作怪。
解决方案:
1.下载阿里云客户端APP(在阿里云官方网站底部)
我给大家把二维码粘出来了,可直接扫码下载,也可以在手机上的应用商店里面下载(如应用宝等)
2.app下载完成,输入账号+密码,登录成功(app中登录不需要掩码登录)
3.在阿里云APP首页中搜索:登录掩码
4.点击搜索出来的第一个相关文档:为云账号设置登录掩码
5.点击操作步骤中的第一项:云账号登录阿里云控制台
6.点击app右上角头像处(头像有点小,但可以点击)
7.点击倒数第二项,登录掩码中的修改(全部删除,保留为空白,点击保存)
8.这个时候我们再次来到PC端登录阿里云官网,输入账号和密码,显示如下界面,登录成功
————————————————