加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.51jishu.com.cn/)- CDN、大数据、低代码、行业智能、边缘计算!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux一键部署数据库与项目全流程指南

发布时间:2026-04-01 11:47:58 所属栏目:Linux 来源:DaWei
导读:  在Linux系统上快速部署数据库与项目,是开发运维人员的高频需求。本文以MySQL数据库和Java Spring Boot项目为例,提供一套可复用的全流程方案,涵盖环境准备、依赖安装、自动化配置等关键步骤,帮助开发者在30分

  在Linux系统上快速部署数据库与项目,是开发运维人员的高频需求。本文以MySQL数据库和Java Spring Boot项目为例,提供一套可复用的全流程方案,涵盖环境准备、依赖安装、自动化配置等关键步骤,帮助开发者在30分钟内完成从零到上线的全流程操作。


  一、基础环境准备
选择Ubuntu 20.04 LTS或CentOS 8作为操作系统,确保服务器有至少2GB内存和20GB磁盘空间。通过SSH登录服务器后,执行系统更新命令:Ubuntu用户运行`sudo apt update \u0026\u0026 sudo apt upgrade -y`,CentOS用户执行`sudo yum update -y`。安装基础工具包:`sudo apt install wget curl git unzip -y`(Ubuntu)或`sudo yum install wget curl git unzip -y`(CentOS)。这些工具将用于后续的依赖下载和文件解压操作。


  二、数据库自动化部署
使用Docker可以大幅简化数据库安装流程。先安装Docker引擎:
```bash
curl -fsSL https://get.docker.com | sh
sudo systemctl enable --now docker
```
创建MySQL容器并配置持久化存储:
```bash
mkdir -p /data/mysql
docker run -d --name mysql \\
-e MYSQL_ROOT_PASSWORD=yourpassword \\
-e MYSQL_DATABASE=appdb \\
-v /data/mysql:/var/lib/mysql \\
-p 3306:3306 \\
mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
```
该命令会自动下载MySQL 8.0镜像,创建名为appdb的数据库,并将数据持久化到宿主机目录。通过`docker logs mysql`可验证启动状态,使用`mysql -h127.0.0.1 -uroot -p`测试连接。


  三、项目部署方案选择
根据项目类型选择部署方式:
1. JAR包部署:适用于Spring Boot等打包为独立JAR的项目。上传项目文件到`/opt/app`目录后执行:
```bash
nohup java -jar your-app.jar --spring.datasource.url=jdbc:mysql://localhost:3306/appdb > app.log 2>\u00261 \u0026
```

2. War包部署:需先安装Tomcat:
```bash
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.82/bin/apache-tomcat-9.0.82.tar.gz
tar -xzf apache-tomcat-9.0.82.tar.gz -C /opt
/opt/apache-tomcat-9.0.82/bin/startup.sh
```
将war包放入`/opt/apache-tomcat-9.0.82/webapps`目录即可自动部署。

3. 源码编译部署:对于Node.js项目,安装Node环境后:
```bash
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
git clone your-project.git
cd your-project \u0026\u0026 npm install \u0026\u0026 npm run build
```


  四、服务管理优化
使用Systemd管理Java服务:
```ini
# /etc/systemd/system/app.service
[Unit]
Description=Spring Boot Application
After=syslog.target network.target
[Service]
User=root
ExecStart=/usr/bin/java -jar /opt/app/your-app.jar
SuccessExitStatus=143
StandardOutput=file:/opt/app/app.log
StandardError=file:/opt/app/error.log
[Install]
WantedBy=multi-user.target
```
启用服务:`sudo systemctl enable --now app`。配置Nginx反向代理(以80端口转发到8080为例):
```nginx
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
}
}
```
重启Nginx:`sudo systemctl restart nginx`。


  五、自动化脚本封装
将上述步骤整合为一键部署脚本`deploy.sh`:
```bash
#!/bin/bash
# 数据库配置
DB_PASS="yourpassword"
# 安装Docker
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
# 启动MySQL
mkdir -p /data/mysql
docker run -d --name mysql \\
-e MYSQL_ROOT_PASSWORD=$DB_PASS \\
-e MYSQL_DATABASE=appdb \\
-v /data/mysql:/var/lib/mysql \\
-p 3306:3306 \\
mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
# 部署项目(示例为JAR包)
mkdir -p /opt/app

AI生成的趋势图,仅供参考

wget https://your-project-url/app.jar -O /opt/app/app.jar
nohup java -jar /opt/app/app.jar --spring.datasource.url=jdbc:mysql://localhost:3306/appdb > /opt/app/app.log 2>\u00261 \u0026
echo "部署完成,访问地址:http://$(hostname -I | awk '{print $1}')"
```
赋予执行权限:`chmod +x deploy.sh`,运行脚本:`./deploy.sh`。


  六、安全加固建议
1. 修改默认SSH端口并禁用root登录

2. 配置防火墙只开放必要端口:
```bash
ufw allow 22/tcp # SSH
ufw allow 80/tcp # HTTP
ufw allow 443/tcp # HTTPS
ufw enable
```

3. 定期备份数据库:`docker exec mysql sh -c 'exec mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" appdb' > backup.sql`

4. 使用Fail2Ban防范暴力破解
通过以上步骤,开发者可以快速构建一个生产就绪的数据库-项目环境,后续只需修改配置文件即可适配不同项目需求。

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章