mysql安装和部署
下载前准备
确定一下系统的glibc版本,可以使用以下命令进行查看,当前系统glibc版本:2.17
rpm -qa | grep glibc
linux系统会自动携带一个数据库,需要把它给卸载掉,通过以下代码可以查看mariadb 并卸载
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs
下载压缩包
官网:https://www.mysql.com/
选择自己需要的mysql版本和服务器对应glibc版本
点击下载
创建压缩包存放目录
mkdir /compile/package/mysql/mysql8.4.0
创建安装目录
mkdir /compile/install/mysql
先将已经下载好的压缩包上传到虚拟机的存放目录里面,然后将压缩包解压到安装目录里面
这里我通过xftp将mysql压缩包上传到服务器、
# 进入到mysql8压缩包所在目录
cd /compile/package/mysql/mysql8.4.0
# 解压缩文件到当前目录下
tar -xvf mysql-8.4.0-linux-glibc2.17-x86_64.tar
# 将需要用的压缩文件解压到安装目录
tar -xvf mysql-8.4.0-linux-glibc2.17-x86_64.tar.xz -C /compile/install/mysql/
在mysql目录下创建data文件夹
cd /compile/install/mysql/mysql8.4.0/
mkdir data
mysql安装目录赋予权限
chmod -R 777 /compile/install/mysql/mysql8.4.0/
创建用户组以及用户
# 创建组
groupadd mysql
# 创建用户(-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限)
useradd -r -g mysql -s /bin/false mysql
# 将用户添加到组中
chown -R mysql:mysql ./
将mysql文件夹的所有者和所有组都改为mysql
chown -R mysql.mysql /compile/install/mysql/mysql8.4.0/
进入bin目录执行mysqld文件进行初始化
cd /compile/install/mysql/mysql8.4.0/bin/
./mysqld --user=mysql --basedir=/compile/install/mysql/mysql8.4.0/ --datadir=/compile/install/mysql/mysql8.4.0/data --initialize
初始化之后会生成一个密码要记住,先复制等后面登录的时候使用
vim /etc/my.cnf
[mysqld]
port=3306
basedir=/compile/install/mysql/mysql8.4.0
datadir=/compile/install/mysql/mysql8.4.0/data
character-set-server=utf8
default-storage-engine=INNODB[mysql]
default-character-set=utf8[client]
port=3306
default-character-set=utf8
启动mysql
# 进入mysql.server服务目录
cd /compile/install/mysql/mysql8.4.0/support-files/
# 启动服务
./mysql.server start
将mysql添加到系统进程中
cp /compile/install/mysql/mysql8.4.0/support-files/mysql.server /etc/init.d/mysqld
设置mysql自启动
chmod +x /etc/init.d/mysqld
systemctl enable mysqld
登录mysql
# 进入mysql bin目录
cd /compile/install/mysql/mysql8.4.0/bin/
# 进入mysql
./mysql -u root -p
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxx';
设置允许远程登录
如果密码设置的太简单,使用连接软件连接数据库的时候可能报错
use mysql
update user set user.Host='%'where user.User='root';
flush privileges;
quit
重启数据库,查看运行状态
systemctl restart mysql
service mysql restart
# 查看mysql是否启动
systemctl status mysql
在阿里云服务器控制台->安全组->修改策略
添加3306端口
测试连接:成功连接
数据库脚本的导入
.首先在navicat中将本地数据库的内容导出
将.sql文件上传到对应文件夹下
mysql -u root -p#输入自己的密码#创建数据库
create database sky_take_out;#查看数据库
show databases;#进入manager库
use sky_take_out;#执行脚本文件
source /usr/local/sky_take_out.sql#查看数据库表
show tables;
Jdk17安装部署
下载地址:https://www.oracle.com/java/technologies/downloads/
选择自己需要的jdk版本进行下载。
通过mac终端scp命令上传下载好的jdk17到服务器的/usr/local目录下
scp -r Downloads/jdk-17.0.13_linux-x64_bin.tar.gz 用户名@服务器ip地址:/usr/local
上传成功
进入到/usr/local目录下,解压jdk到对应目录
tar -zxvf jdk-17.0.13_linux-x64_bin.tar.gz -C /usr/local
移动jdk到java目录下
mv /usr/local/jdk-17.0.13 /usr/local/java
进入profile文件,对jdk设置全局变量
vi /etc/profile
添加
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
按下 esc 退出insert模式 再输入 :wq
生效配置文件
source /etc/profile
验证:
java -version
nginx安装:
wget http://nginx.org/download/nginx-1.27.2.tar.gz
安装所需库文件
#安装库文件yum install gcc-c++ -y
yum install -y pcre pcre-devel -y
yum install -y zlib zlib-devel -y
yum install -y openssl openssl-devel -y
创建目录
mkdir /usr/local/nginx
下载nginx1.27
wget http://nginx.org/download/nginx-1.27.2.tar.gz
解压到指定目录
tar -zxvf /tmp/nginx-1.27.2.tar.gz -C /usr/local/nginx
进行编译安装
cd /usr/local/nginx/nginx-1.27.2./configure --with-http_stub_status_module --with-http_ssl_modulemake && make install
创建软连接,让系统识别Nginx命令
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
#检查文件是否正确
nginx -t
启动
nginx
常用命令
ps -ef | grep nginx # 查看
./nginx -s stop # 停止
./nginx -s reload # 重启
ps -ef | grep nginx
打开阿里云ecs控制台,点击安全组->管理规则->添加
打开80端口,然后在网页上输入自己服务器的公网ip就可以访问到nginx页面了
先将自己的vue工程进行打包
我是通过mac终端命令scp上传前端项目到服务器 命令如下
scp -r /opt/homebrew/opt/nginx/html/sky 云服务器用户名@ip地址:/usr/local/nginx/html/
简单修改一下配置文件(vi /usr/local/nginx/conf/nginx.conf)
配置好后重启nginx
cd /usr/local/nginx/sbin
./nginx -s reload
在网页上输入自己服务器的公网ip就可以访问到nginx页面了
我的nginx.conf配置如下:
#user nobody;
worker_processes 1;#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '# '"$http_user_agent" "$http_x_forwarded_for"';#access_log logs/access.log main;sendfile on;#tcp_nopush on;#keepalive_timeout 0;keepalive_timeout 65;#gzip on;map $http_upgrade $connection_upgrade{default upgrade;'' close;}upstream webservers{server 127.0.0.1:8080 weight=90 ;#server 127.0.0.1:8088 weight=10 ;}server {listen 8088;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root /usr/local/nginx/html/sky;index index.html index.htm;}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}# 反向代理,处理管理端发送的请求location /api/ {proxy_pass http://localhost:8080/admin/;#proxy_pass http://webservers/admin/;}# 反向代理,处理用户端发送的请求location /user/ {proxy_pass http://webservers/user/;}# WebSocketlocation /ws/ {proxy_pass http://webservers/ws/;proxy_http_version 1.1;proxy_read_timeout 3600s;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "$connection_upgrade";}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {# deny all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {# listen 8000;# listen somename:8080;# server_name somename alias another.alias;# location / {# root html;# index index.html index.htm;# }#}# HTTPS server##server {# listen 443 ssl;# server_name localhost;# ssl_certificate cert.pem;# ssl_certificate_key cert.key;# ssl_session_cache shared:SSL:1m;# ssl_session_timeout 5m;# ssl_ciphers HIGH:!aNULL:!MD5;# ssl_prefer_server_ciphers on;# location / {# root html;# index index.html index.htm;# }#}}
安装和部署Redis
# 下载redis压缩包,这儿下载的6.2.6版本
wget https://download.redis.io/releases/redis-7.2.6.tar.gz
# 解压压缩包
tar -zxvf redis-7.2.6.tar.gz
# 进入解压目录
cd redis-7.2.6
# 编译
make
指定安装目录并进行安装
sudo make install PREFIX=/usr/local/redis
# 进入redis安装目录
cd /usr/local/redis/bin/
# 启动服务
在Linux系统中,安装好Redis后,进行启动时,出现如下的警告信息:
WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect
意思是:必须启用内存复用!没有它,在内存不足的情况下,后台保存或复制可能会失败。如果被禁用,它也可能导致故障,但不会造成低内存条件,请参阅https://github.com/jemalloc/jemalloc/issues/1328。要解决此问题,请添加“vm.Overcommit_memory = 1”到/etc/sysctl.conf中,然后重新启动或运行命令“sysctl vm. conf”。Overcommit_memory =1’才能生效
首先,打开 sysctl.conf 文件,使用以下命令
vim /etc/sysctl.conf
按 i 键进入编辑模式,在配置文件中添加以下配置
vm.overcommit_memory = 1
按 Esc 键,退出编辑模式,输入 :wq 命令,保存退出
执行以下命令
sysctl vm.overcommit_memory=1
就没有报错信息了
云服务器开放6379端口
后端工程打包部署
mavne多模块依赖打包
打开父pom.xml修改打包方式jar为pom
sky-server模块 po m.xml引入其他两个模块
打包前把yml里mysq和redis配成服务器的
使用maven打包
使用mac终端scp将打包生成的jar包上传到服务器
进到上传的目录下使用
java -jar 上传的jar名
前后端成功连通