|
在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防范暴力破解 通过以上步骤,开发者可以快速构建一个生产就绪的数据库-项目环境,后续只需修改配置文件即可适配不同项目需求。 (编辑:站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|