修改ROOT登录
| 步骤 | 方法 |
|---|---|
| 修改 root 密码 | 执行命令sudo passwd root |
| 输入密码 | 可以和 ubuntu 密码一致,也可以修改 (密码会让你输入两次) |
| 修改 ssh 配置 | 执行命令sudo vi /etc/ssh/sshd_config |
| 修 改 PermitRootLogin | 进入 ssh 配置界面后找到PermitRootLogin,将它后面改为yes,保存 (按i进入编辑模式,编辑完esc退出,:w保存当前文件,:q退出) |
| 重启 ssh 服务 | 执行命令sudo service ssh restart |
Docker
更新索引:sudo apt update
安装docker:snap install docker
重启:sudo snap restart docker
换源:
sudo tee /var/snap/docker/current/config/daemon.json <<-'EOF'
{
"log-level":"error",
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com",
"https://docker.1ms.run",
"https://func.ink",
"https://lispy.org",
"https://docker.xiaogenban1993.com"
]
}
EOF
Docker安装MySQL5.7
Docker实操:安装MySQL5.7详解(保姆级教程)-腾讯云开发者社区-腾讯云
docker pull mysql:5.7
docker run -p 3307:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
--restart=always \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
MySQL8.0
下载安装:sudo apt install mysql-server -y
开启忽略表名称大小写与远程链接(在创建数据库的时候创建,如果库中有数据,先备份)
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
lower_case_table_names=1
bind-address = 0.0.0.0
删除该目录下的文件
sudo rm -rf /var/lib/mysql/*
初始化,此时就会根据我们更改的新配置文件就行配置
sudo mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql
启动Mysql:sudo systemctl start mysql
配置MySql:sudo mysql_secure_installation
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component? //设置Mysql密码组件
-- N
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.//删除匿名访问
-- Y
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network. //远程链接
-- N
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.//删除test测试库
-- Y
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.//重新加载权限
-- Y
登录MySQL
mysql -uroot -p
设置MySQL密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yanpeng2580!';
FLUSH PRIVILEGES;
设置远程链接
查看用户链接权限:SELECT User, Host FROM mysql.user;
-- 登录 MySQL
sudo mysql -u root -p
-- 切换到 mysql 数据库
USE mysql;
-- 创建新的 root 用户记录
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yanpeng2580!';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
验证MySQL是否在运行
Mysql状态:sudo systemctl status mysql
启动Mysql:sudo systemctl start mysql
卸载并彻底删除mysql
sudo apt purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt autoremove
sudo apt autoclean
Nginx
sudo apt install nginx
查看Nginx状态:sudo systemctl status nginx
查看nginx配置文件:nginx -t
ng常用命令
# 进入nginx的执行目录
cd /usr/local/nginx/sbin
# 启动nginx
./nginx
# 停止nginx(强制停止)
./nginx -s stop
# 退出nginx(安全退出)
./nginx -s quit
# 重新加载配置文件(修改过配置文件后使用)
./nginx -s reload
防火墙
# 防火墙相关命令
# 关闭防火墙
systemctl stop firewalld
# 开启防火墙
systemctl start firewalld
# 查看防火墙状态
systemctl status firewalld
# 查看防火墙规则
firewall-cmd --list-all
# 查询端口是否开放
firewall-cmd --query-port=80/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 关闭80端口
firewall-cmd --permanent --remove-port=8080/tcp
# 重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
Redis
官网教程:Install Redis on Linux | Docs
sudo apt-get install lsb-release curl gpg
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get update
sudo apt-get install redis
sudo systemctl enable redis-server
sudo systemctl start redis-server
验证:
输入 : redis-cli 进入 输入exit退出
修改配置文件
sudo systemctl start redis-server
开启redis监听配置
notify-keyspace-events Ex
开启远程链接
编辑:/etc/redis/redis.conf
# 允许任何主机连接、访问
bind 127.0.0.1 改为 bind 0.0.0.0
# 关闭保护模式
protected-mode yes 改为 protected-mode no
# 允许启动后在后台运行,即关闭命令行窗口后仍能运行
daemonize no 改为 daemonize yes
添加密码
requirepass 123456
修改后重启redis
sudo systemctl restart redis
验证状态:
sudo systemctl status redis
Java
1、更新软件包列表:
sudo apt-get update
2、安装openjdk-8-jdk:
sudo apt-get install openjdk-8-jdk
3、查看java版本,看看是否安装成功:
java -version
jar包运行
1.查看java进程
ps -ef|grep java
2.查看端口被占用
- 使用 netstat 命令 netstat 是一个用于显示网络状态信息的命令。要查看特定端口是否被占用,可以使用以下命令:
netstat -tuln | grep 端口号
-t: 显示 TCP 连接信息
-u: 显示 UDP 连接信息
-l: 仅显示监听状态的端口
-n: 使用数字格式显示端口号,而不是服务名
grep 端口号: 使用 grep 命令过滤出指定的端口号信息
例如,要查看端口号 80 是否被占用,可以执行:
netstat -tuln | grep 8080
3.jar包运行sh脚本
#!/bin/bash
#jar包路径
ROOT_DIR="/home/scdl/20240817/jar/"
#jar包名称
#nohup.out 日志文件
APP_NAME=ruoyi-admin.jar
NOW_DATE=$(date +%c)
usage() {
echo "用法: sh ruoyi-admin.sh [start(启动)|stop(停止)|restart(重启)|status(状态)|log(实时监控日志)]"
exit 1
}
cd ${ROOT_DIR}
echo "当前时间:${NOW_DATE}"
is_exist(){
pid=`ps -ef|grep ${APP_NAME}|grep -v grep|awk '{print $2}' `
if [[ -z "${pid}" ]]; then
return 1
else
return 0
fi
}
start(){
is_exist
if [[ $? -eq "0" ]]; then
echo "${APP_NAME} 正在运行。 pid=${pid} ."
else
nohup java -server -Xms256m -Xmx512m -jar ${ROOT_DIR}/${APP_NAME} > ${ROOT_DIR}/nohup.out 2>&1 &
echo "${APP_NAME} 正在启动,请查看日志确保运行正常。"
fi
}
stop(){
is_exist
if [[ $? -eq "0" ]]; then
kill -9 $pid
echo "${pid} 进程已被杀死,程序停止运行"
else
echo "${APP_NAME} 未运行!"
fi
}
status(){
is_exist
if [[ $? -eq "0" ]]; then
echo "${APP_NAME} 正在运行。Pid is ${pid}"
else
echo "${APP_NAME} 未运行!"
fi
}
log(){
echo "日志文件位置:${ROOT_DIR}/nohup.out"
tail -f ${ROOT_DIR}/nohup.out
}
restart(){
stop
start
log
}
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
"log")
log
;;
*)
usage
;;
esac
4.监听日志文件
tail -f 日志路径
MinIO
# 下载服务端
wget https://dl.min.io/server/minio/release/linux-amd64/minio
# 将下载所得minio文件拷贝到指定文件夹并赋权
sudo cp minio /usr/local/bin/
sudo chmod +x /usr/local/bin/minio
# 为MinIO创建一个存储目录
sudo mkdir /data
# 启动MinIO,并指定存储目录和访问地址:
sudo minio server /data --console-address ":9099"
MinIO启动后,可以在浏览器中输入http://ip:9000,打开后自动跳转到http://ip:9099,在用户名密码处输入默认用户名密码(minioadmin/minioadmin)即可登陆系统。
配置自启动服务
为简化MinIO配置,我们可将MinIO的配置统一写入一个配置文件,以供启动时调用。配置方式如下:
# 默认把配置文件放入/etc/default文件夹中,名称为minio
sudo nano /etc/default/minio
在文件中写入如下内容:
# 指定数据存储目录(注意:这个目录要存在且拥有相对应的权限)
MINIO_VOLUMES="/data"
# 监听端口
MINIO_OPTS="--address :9000 --console-address :9099"
# 老版本使用MINIO_ACCESS_KEY/MINIO_SECRET_KEY,新版本已不建议使用
# Access key (账号)
# MINIO_ACCESS_KEY="minioadmin"
# Secret key (密码)
# MINIO_SECRET_KEY="minioadmin"
# 新版本使用;指定默认的用户名和密码,其中用户名必须大于3个字母,否则不能启动
MINIO_ROOT_USER="minioadmin"
MINIO_ROOT_PASSWORD="yanpeng2580!"
# 区域值,标准格式是“国家-区域-编号”,
MINIO_REGION="cn-north-1"
# 域名
# MINIO_DOMAIN=minio.your_domain.com
创建minio.service服务文件,并写入配置信息:
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio
[Service]
WorkingDirectory=/usr/local/
ProtectProc=invisible
# 指向3.1节中的配置文件
EnvironmentFile=/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
# Let systemd restart this service always
Restart=always
# Specifies the maximum (1M) file descriptor number that can be opened by this process
LimitNOFILE=1048576
# Specifies the maximum number of threads this process can create
TasksMax=infinity
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
SuccessExitStatus=0
[Install]
WantedBy=multi-user.target
Alias=minio.service
使服务生效
# 重新加载服务配置文件,使服务生效
systemctl daemon-reload
# 将服务设置为开机启动
systemctl enable minio
# 服务立即启动
systemctl start minio
# 查看minio服务当前状态
systemctl status minio
