常用软件安装

服务器版本为Centos7.8 x86_64

1.yum下载提速

1.wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2. yum clean all
3.yum makecache

2.jdk

yum install java-1.8.0-openjdk* -y
# yum update 时自动更新jdk版本
1.yum -y install yum-versionlock(如果versionlock命令不存在的话)
2.yum versionlock java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64
3.yum versionlock list | grep java-1.8.0-openjdk(检查是否成功)
4.如果想更新jdk版本
yum versionlock delete java-1.8.0-openjdk

3.redis

1.下载第三方扩展源rpm

wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
如果wget不存在  yum -y install wget

2.安装remi.repo

rpm -ivh remi-release-7.rpm
如果报错后面加 --nodeps --force

3.查看可安装的reids版本

yum --enablerepo=remi  --showduplicates list redis

常用软件安装_第1张图片

4.安装指定版本

yum --enablerepo=remi install -y redis-6.0.19

5.默认配置文件

默认配置文件在etc/redis.conf
可以更换到/etc/redis/redis.conf
然后修改/usr/lib/systemd/system/redis.service 指定配置文件位置
常用软件安装_第2张图片

6.启动

然后 systemctl start redis 即可启动redis
测试连接:redis-cli
日志文件路径:logfile /var/log/redis/redis.log
数据文件路径:dir /var/lib/redis

7.配置外部连接:

修改配置文件
protected-mode no #外部访问
注释掉 bind 127.0.0.1
daemonize yes #后台启动 必须设置

4.nginx

1.下载源

采用redis下载源即可

2.查看可安装版本

yum --enablerepo=remi  --showduplicates list nginx

常用软件安装_第3张图片

3.安装指定版本

yum install -y nginx-1.20.1

4.启动

systemctl start nginx

访问测试 服务器ip 可看到nginx欢迎页

5.配置文件路径

/etc/nginx

6.日志文件路径

/var/log/nginx/

7.错误处理

代理出错 nginx error日志中 upstream后面的路径可以访问 但还是访问失败时
vim /etc/selinux/config
将SELINUX=enforcing改为
SELINUX=disabled
快速:sed -i ‘s/enforcing/disabled/’ /etc/selinux/config

5.python3

1.yum search python3
常用软件安装_第4张图片
2.yum install python36

6.runlike

作用是查看容器启动命令
1.安装python3
2.pip install runlike
3.runlike -p +容器id或name
常用软件安装_第5张图片

7.MySQL5.7

1.下载mysql的yum源配置

wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

2.安装yum源

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

3.安装

yum -y install mysql-server --nogpgcheck 
--nogpgcheck (不校验数字签名)

4.启动

systemctl start mysqld.service

5.查看初始密码

cat /var/log/mysqld.log|grep password

6.登录

mysql -uroot -p

7.修改root密码

ALTER USER USER() IDENTIFIED BY ‘Lzp624753336!’;

8.重新登录修改root表权限和远程连接权限

grant all privileges on *.* to 'root'@'localhost' identified by 'Lzp624753336!' with grant option;

FLUSH PRIVILEGES;
这样是本地所有表的权限
如果想远程连接 @后面是%
这样就完成了mysql安装及root用户的初始化

8.MySQL8.0

1.下载mysql的yum源配置

wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

2.安装yum源

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

3.查询mysql源

yum repolist all | grep mysql

常用软件安装_第6张图片

4.启用mysql8

yum-config-manager --disable mysql57-community #禁用mysql的5.x系列
yum-config-manager --enable mysql80-community #启用mysql的8.x系列
常用软件安装_第7张图片

5.安装

yum -y install mysql-server --nogpgcheck

6.启动

systemctl start mysqld.service

7.抓取日志文件中mysql临时密码

grep 'temporary password' /var/log/mysqld.log

8.登录修改密码

登陆不了的话修改etc/my.cnf
在 [mysqld] 下添加该语句:skip-grant-tables 忽略mysql权限问题,直接登录
然后重启mysql
再次登录 mysql -uroot -p 直接回车 不需要密码
use mysql;
1.select host, user, authentication_string, plugin from user; # 查看一下是否可以执行成功
2.update user set host=‘%’,plugin=‘mysql_native_password’,authentication_string=’‘ where user=‘root’;
然后把配置文件的修改注释掉 再次重启mysql
然后 mysql -uroot -p 还是直接回车
ALTER user’root’@‘%’ IDENTIFIED BY ‘你要设置的密码’; 这样就可以本地和远程登录了
如果只想本地登录 @后面是localhost

9.报错提示:

ERROR 1227 (42000): Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation
说明root用户没有SYSTEM_USER权限
grant system_user on . to ‘root’;
flush privileges;
然后再操作就可以

10.MySQL常用命令

1.查询空闲等待时间 单位s

SHOW GLOBAL VARIABLES LIKE '%timeout%';

常用软件安装_第8张图片
wait_timeout:非交互式的连接空闲等待时间(jdbc)
interactive_timeout:交互式的连接空闲等待时间(sqlyog)
interactive_timeout会影响wait_timeout,所以这两个值最好设置成一样的
SET GLOBAL wait_timeout=180;
SET GLOBAL interactive_timeout=180; (代码中配置比这个值小30s spring.datasource.hikari.max-lifetime=150000)

2.查询最大连接数

#默认值151 可以设置成200(代码中配置相同值)
SHOW VARIABLES LIKE “max_connections”;
SET GLOBAL max_connections=200;

3.查询当前所有的连接

和用户权限有关系,如果权限不足 只能看到自己账户的连接数
SHOW FULL PROCESSLIST;
不受权限限制 显示所有链接数
SHOW STATUS LIKE ‘Threads_connected’;

4.断开某个指定连接

KILL +id

5.创建用户

mysql库的user表
mysql8

# mysql8远程连接用户
CREATE USER test8@'%' IDENTIFIED BY 'Lzp624753336!'; #创建用户
GRANT ALL PRIVILEGES ON test01.* TO test8@'%' WITH GRANT OPTION;#赋予test01表的权限
FLUSH PRIVILEGES;
# mysql8创建本地连接用户
CREATE USER test9@'localhost' IDENTIFIED BY 'Lzp624753336!'; #创建用户
GRANT ALL PRIVILEGES ON test01.* TO test9@'localhost' WITH GRANT OPTION;#赋予test01表的权限
FLUSH PRIVILEGES;
# 注:with grant option 代表该用户可以将自己有的权限给别人

连接权限变更 例如远程访问的用户想改为本地访问权限
#1.本地连接改为远程连接的权限
use mysql
update user set host='%' where user='test9'; 
FLUSH PRIVILEGES;
#2.远程连接改为本地连接的权限
update user set host='localhost' where user='test8'; 
USH PRIVILEGES;
● 权限从本地变到远程 远程看不到本地权限时的表,需要单独授权远程访问的表。反之则不会
test9用户权限由本地变为远程  原表权限需要重新授权远程
GRANT ALL PRIVILEGES ON test01.* TO test9@'%' WITH GRANT OPTION;

报错提示

ERROR 1227 (42000): Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation
说明root用户没有SYSTEM_USER权限
grant system_user on *.* to 'root';
flush privileges;
然后再操作就可以

mysql5.7

test8用户远程权限
GRANT ALL PRIVILEGES ON lzp.* TO 'test8'@'%' IDENTIFIED BY 'Lzp624753336!' WITH GRANT OPTION;
test9用户本地权限
GRANT ALL PRIVILEGES ON lzp.* TO 'test9'@'localhost' IDENTIFIED BY 'Lzp624753336!' WITH GRANT OPTION;

test9用户 本地权限变成远程权限
GRANT ALL PRIVILEGES ON lzp.* TO 'test9'@'%' IDENTIFIED BY 'Lzp624753336!' WITH GRANT OPTION;
flush privileges;

收回权限

REVOKE ALL PRIVILEGES ON lzp.* FROM test9;

查询用户数据库权限
SHOW GRANTS FOR username;

6.登录mysql

mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句"

常用软件安装_第9张图片
mysql -uroot -p -hlocalhost -P3306 mysql -e “select host,user from user”

7.备份数据库

不需要进入数据库,最后不要加分号
附加建库语句

mysqldump -uroot -proot --databases db1 >/tmp/user.sql

不附加建库语句

mysqldump -uroot -proot db1 >/tmp/user.sql

8.恢复数据库

sql文件中有建库语句,不需要指定数据库名称
mysql -uroot -p
sql文件中没有建库语句,需要指定数据库
mysql -uroot -p ruoyi_vue_pro

9.数据文件

mysql5.6之后就为每个表单独指定一个文件夹,不再存到系统表空间下
数据文件存储在 /var/lib/mysql/下,
mysql8:
每个库一个文件夹,每个表一个ibd文件,ibd文件存储表结构 数据 索引等。
mysql5.7:
每个库一个文件夹,每个表一个ibd文件存储数据,每个表一个frm文件存储表结构,
每个表一个opt文件(5.7及之前版本),这个文件中包含了该数据库的各种数据,比如该数据库的字符集和比较规则。
mysql8查看表结构
进到表文件夹下 var/lib/mysql/表名
然后执行
ibd2sdi --dump-file=test01.txt llzzpp.ibd
这样就会生成一个test01.txt文件,可以查看llzzpp表的表结构和索引。

10.开启日志

etc/my.cnf mysqld下

日志时间和系统同步:
log_timestamps=SYSTEM

1.慢查询日志
永久
slow_query_log = ON
slow_query_log_file = /var/lib/mysql/slow-queries.log #日志名称及路径
long_query_time = 5 #五秒以上为慢查询
log_output = FILE
log_queries_not_using_indexes = 1 # 记录未使用索引的查询语句到慢查询日志
临时
SET GLOBAL slow_query_log = ‘ON’;
SET GLOBAL slow_query_log_file = ‘/path/to/slow-query.log’;
SET GLOBAL long_query_time = 3;
SET GLOBAL log_queries_not_using_indexes = ‘ON’;
2.通用日志
永久
记录所有连接的起始时间和终止时间,以及连接发送给数据库服务器的所有指令
general_log = ON
general_log_file=/var/lib/mysql/general.log #日志文件所在目录路径,filename为日志文件名
临时
临时方式:
SET GLOBAL general_log=on; # 开启通用查询日志
SET GLOBAL general_log_file=‘path/filename’; # 设置日志文件保存位置
SET GLOBAL general_log=off; # 关闭通用查询日志

11.安装supervisor

管理linux应用程序
使用redis的安装源即可

1.安装

yum install -y supervisor

2.查看

systemctl status supervisord

3.开机自启

systemctl enable supervisord 

查看开机自启是否生效

systemctl is-enabled supervisord.service

4.开始服务

systemctl start supervisord

5.配置文件

常用软件安装_第10张图片

6.添加项目配置文件

常用软件安装_第11张图片

7.项目配置文件内容

可以配置多个program
注意这里stdout_logfile配置的日志文件不影响项目的日志文件,可以单独指定路径

[program:lzp-server]
environment=JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.345.b01-1.el7_9.x86_64/bin"
directory = /lzp/java_project/
command = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.345.b01-1.el7_9.x86_64/bin/java -Xms64m -Xmx128m  -jar /lzp/java_project/springbootnew.jar
autostart = true
startsecs = 30
autorestart = true
startretries = 10
user = root
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /lzp/java_project/log/bootnew.out

8.配置完加载新配置 启动java服务

supervisorctl update 

配置完一个新的配置文件,通过此命令加载

9.查看项目启动状态

supervisorctl status

10.其他指令

supervisorctl update lzp-server #改完某个配置文件 重启某个服务
supervisorctl start lzp-server #配置完一个新的配置文件 update后 通过此命令启动应用
supervisorctl stop lzp-server  #停止
supervisorctl restart lzp-server #重启

11.重新启动配置中的所有服务

supervisorctl reload

12.配置web访问

/etc/supervisord.conf
常用软件安装_第12张图片
配置完执行
supervisorctl reload
访问192.168.56.10:9002 输入账号密码即可

13.日志

项目默认日志文件路径:/tmp/项目名.log

14.配置文件示例

[program:jeepay-manager]
environment=JAVA_HOME="/etc/alternatives/java_sdk_1.8.0/bin"
directory = /mnt/data/ai-application
command = /etc/alternatives/java_sdk_1.8.0/bin/java -Xms256m -Xmx2048m -jar /mnt/data/ai-application/jeepay-manager.jar
autostart = true
startsecs = 30
autorestart = true
startretries = 5
user = root
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /mnt/data/logs/jeepay/jeepay-manager.out

[program:jeepay-merchant]
environment=JAVA_HOME="/etc/alternatives/java_sdk_1.8.0/bin"
directory = /mnt/data/ai-application
command = /etc/alternatives/java_sdk_1.8.0/bin/java -Xms256m -Xmx2048m -jar /mnt/data/ai-application/jeepay-merchant.jar
autostart = true
startsecs = 30
autorestart = true
startretries = 5
user = root
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /mnt/data/logs/jeepay/jeepay-merchant.out

[program:jeepay-payment]
environment=JAVA_HOME="/etc/alternatives/java_sdk_1.8.0/bin"
directory = /mnt/data/ai-application
command = /etc/alternatives/java_sdk_1.8.0/bin/java -Xms256m -Xmx2048m -jar /mnt/data/ai-application/jeepay-payment.jar
autostart = true
startsecs = 30
autorestart = true
startretries = 5
user = root
redirect_stderr = true
stdout_logfile_maxbytes = 20MB
stdout_logfile_backups = 20
stdout_logfile = /mnt/data/logs/jeepay/jeepay-payment.out

你可能感兴趣的:(Linux,linux)