云服务器重装系统centos7.6、JDK8、mysql5.7、nginx1.22
========首先、centos7.6========
自己待得几家公司都用centos得多然后windos其次。然后版本百度搜了一下centos个版本终止时间,8已经去年底停更,7还能坚持,最迟2024年时间足够用,其实停更对我这小屁孩也没啥影响。
选好系统centos选好版本7.6
========JDK========
本来打算选openjdk然后搜的时候发现一句话,当前开源组织都还没放弃oracleJDK而且工作也都还在用oracleJDK,就不选openjdk了,
版本现在应该是JKD17了但是工作最早5后来6了很久到7了没多久一直8着呢,真有需要也没必要放服务器自己本地可以装新版,服务器还是用JDK1.8
结果看别人安装教程用yum安装自己也就安装openJDK啦,哈哈,真是人生无常大肠包小肠。
1、搜索jdk安装包,一眼望去都是openjdk比去官网下载orcakjdk方便多了
yum search java|grep jdk
2、选jdk1.8下载; 默认目录/usr/lib/jvm
yum install java-1.8.0-openjdk
下载过程中 按了一下键盘 y 确认一下
最后提示 完成
3、查看版本,如下图就意味着安装成功
java -version
====如上三步下载安装完成
====如下三步配置环境变量
1、找到目录:
JDK默认安装路径
cd /usr/lib/jvm
找到 jre-1.8.0-openjdk-1.8.0.342.b07-1.el7_9.x86_64
特意去xftp里看了一下,如图
2、把目录配置进系统里:
编辑/etc/profile文件,把找到的命令文件及目录地址配置进去
vi /etc/profile
添加如下命令
1 2 3 4 5 | # set java environment JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64 PATH=$PATH:$JAVA_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME CLASSPATH PATH |
复制 == 键盘i是插入 == 粘贴 == 键盘左上角Esc == 然后 :wq保存退出
保存关闭profile文件,执行如下命令刷新配置生效
source /etc/profile
3、配置完了验证一下是否成功:
查看JDK变量
echo $JAVA_HOME
echo $PATH
echo $CLASSPATH
======mysql======
这个第一步很容易就是十分确信就是mysql而不是其他数据库
第二步版本该选啥,工作用5.7
其他旧同事拿过mysql8的项目让我帮忙找过bug说明现在企业也流行用8了,不过我相信仍然是5.7的居多,
我之前安装过8 https://www.cnblogs.com/swk3/p/15142513.html
现在还是角色安装5.7足够,完全没必要8
分析如下几点:
1\centos7.6自带的类mysql数据库是mariadb,会跟mysql冲突,要先删除。
2\从dev.mysql.com下载会很慢,如果可以更可以去docker方式,推荐去从镜像地址下载,比如去华为镜像地址下载
3\不止是mariadb还有如果以前装过mysql也是要安装前删一下以前的卸掉
4\不用yum自动安装方式,而是自己手动安装就要自己选好安装到目录和配置环境变量,开机自启也是自己配置
5\mysql有权限组用户还有远程访问权限要配置一下
6\MySQL装完肯定要改密码的
基本就是提前卸载旧残渣文件,然后下载、解压、安装、权限、配置、改密、开机自启这些步骤,还真费事主要是怪网速不给力要不真的还是yum安装比较省心
一、卸载
a、清mariadb因为我是腾讯云铁定是有所以这一步必须要做、
1、查
rpm -qa | grep -i mariadb
2、软删刚查到的
rpm -e mariadb-libs
3、硬删刚查到的
rpm -e --nodeps mariadb-libs
b、清理mysql旧文件如果有就清没有就不用这一步、
rpm -qa | grep -i mysql
确实没查出来,当时新装的系统肯定干净
防火墙看状态确实是关着的状态、
systemctl status firewalld
但我手欠给启动一下、
systemctl start firewalld
再看一下状态确实启动了、
systemctl status firewalld
再关闭
systemctl stop firewalld
删mysql其他相关文件
虽然没有安装过mysql旧版本但是有相关的文件不知道有用没有,怕影响我查了一下
find / -name mysql
查到俩,我就给删除掉这俩文件了
rm -rf /etc/selinux/targeted/active/modules/100/mysql
rm -rf /usr/lib64/mysql
二、下载
我在 /usr/local/ 目录
cd /usr/local
从华为镜像找到一个5.7比较新的版本,下载下来,是真的快,应该是广东省省内内网网速吧很快,国内都快
wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
三、解压安装
我在 /usr/local/ 目录下载,解压的,
tar zxf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
并把文件夹的长名改成了短名
mv mysql-5.7.38-linux-glibc2.12-x86_64 mysql-5.7.38
四、系统级别的配置 = 环境变量 + 系统权限账户
添加环境变量配置进系统里
tee -a /etc/profile <<-'EOF'
# wlf-2020-09-21
export PATH=$PATH:/usr/local/mysql-5.7.38/bin
EOF
并刷新命令生效
source /etc/profile
看了一下系统没有mysql组、
cat /etc/group | grep mysql
看了一下系统也没有mysql用户
cat /etc/passwd | grep mysql
给系统添加mysql组
groupadd mysql
给系统添加mysql用户
useradd -r -g mysql mysql
然后在看了一下系统有了mysql组、
cat /etc/group | grep mysql
也有了mysql用户
cat /etc/passwd | grep mysql
把mysql目录权限分给mysql组mysql用户
chown -R mysql.mysql /usr/local/mysql-5.7.38
五====mysql的配置====
创建mysql未来数据存放的目录
mkdir /usr/local/mysql-5.7.38/data
其他端口、编码、等配置信息都写到一个新的配置文件里
cd /usr/local/mysql-5.7.38/support-files
vim my_default.cnf
---------复制如下信息粘贴进去--------------
# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the # *** default location during install, and will be replaced if you # *** upgrade to a newer version of MySQL. [mysqld] sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES basedir = /usr/local/mysql-5.7.38 datadir = /usr/local/mysql-5.7.38/data port = 3306 socket = /tmp/mysql.sock character-set-server=utf8 log-error = /usr/local/mysql-5.7.38/data/mysqld.log pid-file = /usr/local/mysql-5.7.38/data/mysqld.pid
---------复制如上信息粘贴进去--------------
键盘i进入插入状态,粘贴,键盘Esc退出输入状态,冒号:wq退出保存
i 鼠标右键粘贴 Esc :wq
复制一份配置文件到系统etc目录
cp /usr/local/mysql-5.7.38/support-files/my_default.cnf /etc/my.cnf
六、初始化 mysqld 及后续步骤
mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.38/ --datadir=/usr/local/mysql-5.7.38/data/
就可以查看初始密码了
grep password /usr/local/mysql-5.7.38/data/mysqld.log
配置开机自启
cp /usr/local/mysql-5.7.38/support-files/mysql.server /etc/init.d/mysql
启动MySQL
service mysql start
用刚看到的临时密码,在服务器上登录MySQL
mysql -u root -p
七、修改密码(没必要这么简单的密码123456)
三步:改值,改权,刷新权限
set password=password('123456');
grant all privileges on *.* to root@'%' identified by '123456';
flush privileges;
给mysql的root用户添加远程访问权限:
切换到系统mysql库、
use mysql;
给root设置远程访问权限、
update user set host='%' where user = 'root';
这一步我报错了我查了一下select host from user where user = 'root';已经有了所以报错,有了就可以了。
刷新权限
flush privileges;
删掉其他有远程权限的用户只留下root账号可以远程访问
use mysql;
delete from user where user<>'root' and host<>'%';
flush privileges;
退出mysql登录状态
exit;
八、重启mysql服务。然后重启服务器试试能否自启成功
service mysql restart
重启restart、停止stop、启动start
====== nginx =======
我以前装过的记录
https://www.cnblogs.com/swk3/p/15145606.html
发现一个更有趣记录
https://blog.csdn.net/weixin_45525272/article/details/122643702
其实openresty更厉害点,但是我身边真没有人用,工作用不到可能是服务器差业务达不到那种级别,所以就容易选了就普普通通的豹纹nginx即可
主要是为了配饰https,现在http不够用了必须带s了,其次是java开发大都本质是tomcat并发是一两千而普通nainx就能几万并发,确实是标配,服务器再弄上微服务就更起飞了,这就是选nginx的原因,
版本去看官网nginx.org最新稳定版是多少,不是com域名因为com是商用没必要个人用怕折寿
一键安装
cd /usr/local && yum install -y make cmake gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel && wget http://nginx.org/download/nginx-1.22.0.tar.gz && tar zxvf nginx-1.22.0.tar.gz && cd nginx-1.22.0 && ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module --with-http_gzip_static_module
&& make && make install && ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
拆分 && 分割
1、进入usr/local目录
cd /usr/local
2、yum安装必要的环境 gcc-openssl等
yum install -y make cmake gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
如下四句合起来等同上面这一句,自己悟
yum install -y make cmake gcc gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
3、下载(源码): 地址从官网找到稳定的哪个版本,鼠标右键复制超链接地址得到的
wget http://nginx.org/download/nginx-1.22.0.tar.gz
4、解压
tar zxvf nginx-1.22.0.tar.gz
5、进入目录
cd nginx-1.22.0
6、配置 (对源码添加一系列配置,常常是编译安装前要做的,如下这些选项不知道有没有默认值)
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module --with-http_gzip_static_module
7、编译(编译源码)
make
8、编译后安装(源码安装常见的三步曲 ./configure + make + make install )
make install
9、创建全局命令相当于环境变量
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
10、开机自启动
我是编译源码的方式安装的,所以我用手动创建nginx.service的方式实现自启动
vi /lib/systemd/system/nginx.service
如下内容 添加 i切换命令输入 粘贴 退出Esc :wq保存
[Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target #systemctl start nginx.service (启动) #systemctl status nginx.service (查看当前状态) #systemctl stop nginx.service (停止) #systemctl restart nginx.service (重新启动服务) #systemctl enable nginx.service (设置开机自启动) #systemctl disable nginx.service (停止开机自启动) #systemctl list-units --type=service (查看所有已启动的服务)
如果你用方式yum install安装的 系统会自动创建nginx.service文件,道理和装redis时一样
开启自启动:
systemctl enable nginx.service
如下命令自选, 记得执行启动命令后去网页打开看看,重启服务器测一下是否自启了。
可以修改配置nginx.conf(路径看./configure结果里有提示) vi /usr/local/nginx/conf/nginx.conf
查看安装的版本信息等 ./nginx -V
重启生效./nginx -s reload
启动nginx /usr/local/nginx/sbin/nginx 启动nginx默认是conf/nginx.conf相对目录-c指定配置文件启动 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 查看版本(去浏览器访问是否成功,错误时浏览器也提示的版本) /usr/local/nginx/sbin/nginx -V 只查看nginx进程是否运行,正常运行的话可以算是大概率成功了嘻嘻 ps -ef | grep nginx 查看进程并杀死进程 ps -ef | grep nginx |grep -v grep|cut -c 9-15|xargs kill -9
(启动)
systemctl start nginx.service
(查看当前状态)
systemctl status nginx.service
(停止)
systemctl stop nginx.service
(重新启动服务)
systemctl restart nginx.service
(设置开机自启动)
systemctl enable nginx.service
(停止开机自启动)
systemctl disable nginx.service
(查看所有已启动的服务)
systemctl list-units --type=service
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示