服务器版本为Centos7.8 x86_64
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
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
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
如果wget不存在 yum -y install wget
rpm -ivh remi-release-7.rpm
如果报错后面加 --nodeps --force
yum --enablerepo=remi --showduplicates list redis
yum --enablerepo=remi install -y redis-6.0.19
默认配置文件在etc/redis.conf
可以更换到/etc/redis/redis.conf
然后修改/usr/lib/systemd/system/redis.service 指定配置文件位置
然后 systemctl start redis 即可启动redis
测试连接:redis-cli
日志文件路径:logfile /var/log/redis/redis.log
数据文件路径:dir /var/lib/redis
修改配置文件
protected-mode no #外部访问
注释掉 bind 127.0.0.1
daemonize yes #后台启动 必须设置
采用redis下载源即可
yum --enablerepo=remi --showduplicates list nginx
yum install -y nginx-1.20.1
systemctl start nginx
访问测试 服务器ip 可看到nginx欢迎页
/etc/nginx
/var/log/nginx/
代理出错 nginx error日志中 upstream后面的路径可以访问 但还是访问失败时
vim /etc/selinux/config
将SELINUX=enforcing改为
SELINUX=disabled
快速:sed -i ‘s/enforcing/disabled/’ /etc/selinux/config
1.yum search python3
2.yum install python36
作用是查看容器启动命令
1.安装python3
2.pip install runlike
3.runlike -p +容器id或name
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
yum -y install mysql-server --nogpgcheck
--nogpgcheck (不校验数字签名)
systemctl start mysqld.service
cat /var/log/mysqld.log|grep password
mysql -uroot -p
ALTER USER USER() IDENTIFIED BY ‘Lzp624753336!’;
grant all privileges on *.* to 'root'@'localhost' identified by 'Lzp624753336!' with grant option;
FLUSH PRIVILEGES;
这样是本地所有表的权限
如果想远程连接 @后面是%
这样就完成了mysql安装及root用户的初始化
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
yum repolist all | grep mysql
yum-config-manager --disable mysql57-community #禁用mysql的5.x系列
yum-config-manager --enable mysql80-community #启用mysql的8.x系列
yum -y install mysql-server --nogpgcheck
systemctl start mysqld.service
grep 'temporary password' /var/log/mysqld.log
登陆不了的话修改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
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;
然后再操作就可以
SHOW GLOBAL VARIABLES LIKE '%timeout%';
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)
#默认值151 可以设置成200(代码中配置相同值)
SHOW VARIABLES LIKE “max_connections”;
SET GLOBAL max_connections=200;
和用户权限有关系,如果权限不足 只能看到自己账户的连接数
SHOW FULL PROCESSLIST;
不受权限限制 显示所有链接数
SHOW STATUS LIKE ‘Threads_connected’;
KILL +id
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;
mysql –h hostname|hostIP –P port –u username –p DatabaseName –e "SQL语句"
mysql -uroot -p -hlocalhost -P3306 mysql -e “select host,user from user”
不需要进入数据库,最后不要加分号
附加建库语句
mysqldump -uroot -proot --databases db1 >/tmp/user.sql
不附加建库语句
mysqldump -uroot -proot db1 >/tmp/user.sql
sql文件中有建库语句,不需要指定数据库名称
mysql -uroot -p
sql文件中没有建库语句,需要指定数据库
mysql -uroot -p ruoyi_vue_pro
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表的表结构和索引。
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; # 关闭通用查询日志
管理linux应用程序
使用redis的安装源即可
yum install -y supervisor
systemctl status supervisord
systemctl enable supervisord
查看开机自启是否生效
systemctl is-enabled supervisord.service
systemctl start supervisord
可以配置多个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
supervisorctl update
配置完一个新的配置文件,通过此命令加载
supervisorctl status
supervisorctl update lzp-server #改完某个配置文件 重启某个服务
supervisorctl start lzp-server #配置完一个新的配置文件 update后 通过此命令启动应用
supervisorctl stop lzp-server #停止
supervisorctl restart lzp-server #重启
supervisorctl reload
/etc/supervisord.conf
配置完执行
supervisorctl reload
访问192.168.56.10:9002 输入账号密码即可
项目默认日志文件路径:/tmp/项目名.log
[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