欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 仿——管理系统从0开始——若依改

仿——管理系统从0开始——若依改

2024/10/26 4:20:42 来源:https://blog.csdn.net/HSH541/article/details/141089445  浏览:    关键词:仿——管理系统从0开始——若依改

前置环境部署

1. 从网上下载若依vue

2. 使用若依项目修改器改名字

3. 服务器下载mysql

参考:https://blog.csdn.net/bai_shuang/article/details/122939884
问题:

(1)压缩包位置放在usr/local/src中

不错,然后软件安装在usr/local,如mysql就在usr/local/mysql,但是这种感觉不太合适,应该安在opt文件夹,参考:https://blog.csdn.net/qq_52227892/article/details/130649748

(2)下载最新mysql-linux,后缀是.xz,文章命令无法解压

  • 文章中:tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.xz无法解压,报错:
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

Ai回答:

在Linux中,当你尝试使用 tar -zxvf 命令来解压一个 .tar.xz 文件时,你会遇到错误,因为 -z 选项是专门用于处理gzip(.gz)压缩的,而 .xz 文件是由xz压缩工具压缩的。这就是为什么你看到了 gzip: stdin: not in gzip format 的错误消息,因为gzip无法识别或处理xz格式的输入。
tar -zxvf 命令中的 -z 告诉 tar 期待输入是一个通过gzip压缩的tar包。但是,当你给它一个 .tar.xz 文件时,tar 会尝试使用gzip来解压这个文件的压缩部分,这显然会失败。
为了正确解压 .tar.xz 文件,你应该使用不带 -z 选项的 tar -xvf 命令,如下所示:
bash
tar -xvf mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz
这个命令会告诉 tar 直接解压 .xz 压缩的tar包,而不需要通过gzip。
如果你仍然遇到问题,可能是因为你的 tar 版本不支持 .xz 格式。但是,这在大多数现代Linux发行版中都不是问题,因为 tar 通常已经内置了对 .xz 格式的支持。
如果你确定你的 tar 版本不支持 .xz,你可以考虑升级 tar 或者使用 xz 工具单独解压 .xz 部分,然后再使用 tar 解压解压后的 .tar 文件,但这通常是不必要的。
总结一下,使用 tar -xvf 而不是 tar -zxvf 来解压 .tar.xz 文件是正确的做法。如果你看到与gzip相关的错误消息,那通常意味着你使用了错误的选项或命令来解压文件。

  • 需要使用tar -xvf mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz

修改配置文件 vim /etc/my.cnf (没有就新建)

[mysqld] #这个别忘记写,要不然报错:Found option without preceding group in config file /etc/my.cnf at line 1
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql看下面的解释,如果下载mysql,应解压至usr/local且重命名为mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

AI解释:

在MySQL的my.cnf(或my.ini,取决于操作系统)配置文件中,这些配置项用于定义MySQL服务器的运行参数。下面是对你提到的配置项的解释:
bind-address=0.0.0.0:
这个设置指定MySQL服务器监听的IP地址。0.0.0.0是一个特殊的IP地址,表示MySQL服务器将监听所有可用的网络接口上的连接请求。这允许来自任何IP地址的客户端连接到MySQL服务器。如果你只想让MySQL服务器监听特定的IP地址(例如,只为局域网内的客户端提供服务),你可以将0.0.0.0替换为那个特定的IP地址。
port=3306:
这个设置指定MySQL服务器监听的端口号。默认情况下,MySQL服务器使用3306端口。如果你需要更改MySQL服务器监听的端口,可以在这里设置。
user=mysql:
这个设置通常用于指定MySQL服务器启动后运行的用户。然而,在my.cnf文件的[mysqld]部分中设置user可能不是标准做法,因为MySQL服务器通常会在启动时通过其启动脚本(如mysqld_safe或systemd服务)以特定用户身份运行。这个设置可能是在某些特定配置或旧版本的MySQL中使用的。
basedir=/usr/local/mysql:
指定MySQL安装的基础目录。这个目录包含了MySQL的二进制文件、库文件等。
datadir=/data/mysql:
指定MySQL数据库文件的存储目录。这个目录包含了所有的数据库文件,如表文件、日志文件等。
socket=/tmp/mysql.sock:
指定MySQL服务器监听的Unix套接字文件的路径。Unix套接字是一种在同一台机器上的进程间通信机制。客户端可以通过这个套接字文件与MySQL服务器进行通信。
log-error=/data/mysql/mysql.err:
指定MySQL错误日志文件的路径。MySQL服务器会将错误信息记录到这个文件中,这对于问题诊断非常有用。
pid-file=/data/mysql/mysql.pid:
指定MySQL服务器进程ID文件的路径。这个文件包含了MySQL服务器主进程的进程ID(PID),可以用于监控和管理MySQL服务器进程。
character_set_server=utf8mb4:
指定MySQL服务器的默认字符集为utf8mb4。utf8mb4是utf8的超集,支持更多的Unicode字符,包括一些特殊的表情符号(emoji)。使用utf8mb4可以确保你的数据库能够存储和处理更广泛的字符集。
symbolic-links=0:
禁用符号链接。这可以防止MySQL服务器通过符号链接访问文件系统上的其他位置,从而增加安全性。
explicit_defaults_for_timestamp=true:
在MySQL 5.6.6及更高版本中,这个选项用于改变TIMESTAMP和DATETIME列的默认行为。当设置为true时,TIMESTAMP列的默认值将不再自动更新为当前时间戳(除非明确指定了DEFAULT CURRENT_TIMESTAMP或ON UPDATE CURRENT_TIMESTAMP)。这有助于避免一些意外的行为,特别是在复制和备份时。然而,请注意,这个选项在MySQL 8.0及更高版本中已被弃用,因为TIMESTAMP的默认行为已经改变。

本地navicat连接服务器

注意:因为这是服务器上安装的mysql,所以需要更改服务器安全组规则,放开入方向规则:3306端口。另外,一般公司的mysql基本上不使用3306常用端口,想要修改就去改/etc/my.cnf即可

给新建用户授予数据库权限

  • 创建用户:CREATE USER ‘test’@‘%’ IDENTIFIED BY ‘123’;
  • 授予权限:grant 权限列表 on 库名.表名 to 用户名@‘主机’
    举例:grant all on heyu-debt.* to debt@‘%’,但是老是报错:No database selected,但是这个库确实有,我一气之下直接改成grant all on *.* to debt@'%'授予所有库权限,结果成功了。
    权限文章参考:https://blog.csdn.net/weixin_48814356/article/details/128983473
  • 查看用户权限:show grants for debt@‘%’
  • 收回所有权限:revoke all privileges on . from debt@‘%’,我使用root执行这个操作报错了:Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation,然后执行命令:grant system_user on *.* to 'root';然后解决了,参考文章:https://blog.csdn.net/weixin_42330311/article/details/104728396

收回权限(不包含赋权权限)REVOKE ALL PRIVILEGES ON . FROM username;
收回赋权权限REVOKE GRANT OPTION ON . FROM username;
使用第一个命令,用户还有可能会有访问performance_schema库的权限,使用第二个没了,但是仍然会有information_schema库的权限

数据库名字引起的授权的坑

我给数据库名起名:heyu-debt,给某用户授权·grant all on heyu-debt.* to debt@‘%’·,但是一直报错,找不到原因,我就猜猜是不是数据库名的原因,所以我又创建个数据库,名字为heyu_debt,使用grant all on heyu-debt.* to debt@'%'命令给数据库命名,然后成功了,结果这个用户有了heyu-debt库和heyu_debt两个库的权限。奇怪!!!所以,数据库命名不要带杠‘-’,用下划线可以!!!

启动命令

进入:/usr/local/mysql/bin
执行:sudo service mysql start

4. 服务器下载redis

参考:https://blog.csdn.net/qq_47831505/article/details/123883715
由于上一篇文章中wget http://download.redis.io/releases/redis无法下载安装包,所以看下面文章,直接在本地下载后传到服务器上,和mysql一样。
https://blog.csdn.net/qq_52227892/article/details/130649748

安装位置

在上篇的mysql的安装位置中,我把压缩包放在了usr/local/src,安装在usr/local/mysql中,这个感觉不太对,应该安装在opt文件夹中,具体参考https://blog.csdn.net/qq_52227892/article/details/130649748
但是安装在user/local/redis中不容易报错!!!

具体步骤

  1. 网上下载压缩包http://download.redis.io/releases/,下载5版本就行,太高或太低都有可能有问题,我下的是5.09的
  2. 传到linux的opt文件夹中
  3. 解压
  4. 进redis执行make命令
  5. 进src执行make install命令,默认执行make install命令后安装redis在/usr/local/redis中,也可以指定进行安装,如make install /opt
  6. 然后进opt/redis-XX中将redis.conf移到/usr/local/redis/bin目录中,cp redis.conf /usr/local/redis/bin/
  7. 然后在/usr/local/redis/bin/目录中就可以启动了,启动命令:redis-server redis.conf或后台启动redis-server redis.conf &
  8. 然后设置redis开机自启,
  9. 但是有个问题,就是本地客户端工具Redis Desktop Manager v.0.8.8.384连接不上远程redis,原因:没有都对redis.conf进行修改
  • 远程服务器放开6379端口
  • 修改/usr/local/redis/bin/redis.conf文件,把bind 127.0.0.1改为 #bind 127.0.0.1 (注释掉) ,protected-mode yes 改为 protected-mode no,这两个都要改。另外还有个linux在编辑文件时的小技巧,vi看文件时,输入:/字符,就可以直接跳到对应的字符上。参考:https://cloud.tencent.com/developer/article/1347439

redis由于没有设置密码别黑客利用挖矿

问题:本地java连不上redis,然后我去服务器使用ps命令看redis是否启动,结果报错没权限

[root@xx3r5jfzh0iwgvz9 bin]# ps
/usr/bin/ps: line 2: /usr/bin/ps.original: Permission denied

我才刚下redis没多久…
参考:https://tieba.baidu.com/p/7156637436

这是服务器被黑了,你可以看一下/root/.ssh下有没有一个auth开头的文件,应该是你redis开启服务但是没有设置密码的原因造成的,重置服务器吧,或者问云的工作人员。
是redis开启免密登陆,被黑客利用执行了恶意脚本,应该是挖矿去了

如何解决?
不能解决,给redis加密

代码

步骤:

1. 配菜单

遇到的问题:

1. 前后登录原系统和新系统,token失效

redis的token并没有失效,让两个系统使用不同浏览器就可以了,有可能是cookie的原因

2. 若依上配好菜单及路由地址后,出现页面中有嵌套一个菜单及页面

这种应该是正常情况

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com