Linux一键部署数据库与项目全流程指南
|
在Linux环境下一键部署数据库与项目可以显著提升开发效率与系统稳定性。本文以常见的MySQL数据库和Java项目为例,介绍从环境准备到自动化部署的全流程,适用于CentOS/Ubuntu等主流发行版。整个过程分为环境检查、依赖安装、数据库配置、项目部署和自动化脚本编写五个核心步骤。 第一步是环境检查与基础配置。登录服务器后,使用`uname -a`确认系统版本,通过`free -m`和`df -h`查看内存与磁盘空间。建议配置SSH免密登录以便后续操作,使用`ssh-keygen`生成密钥对,将公钥追加到`~/.ssh/authorized_keys`文件。对于云服务器,需在安全组中开放22(SSH)、3306(MySQL)和项目端口(如8080)。安装基础工具链:`sudo apt update \u0026\u0026 sudo apt install -y git wget curl`(Ubuntu)或`sudo yum install -y epel-release \u0026\u0026 sudo yum install -y git wget curl`(CentOS)。 第二步完成数据库的自动化安装与配置。以MySQL 8.0为例,Ubuntu系统执行: wget https://dev.mysql.com/get/mysql-apt-config_0.8.28-1_all.deb sudo dpkg -i mysql-apt-config_0.8.28-1_all.deb sudo apt update \u0026\u0026 sudo apt install -y mysql-server CentOS系统则使用: sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm sudo yum install -y mysql-community-server 启动服务后运行`sudo mysql_secure_installation`进行安全配置,设置root密码并移除匿名账户。创建项目专用用户和数据库: sudo mysql -uroot -p CREATE DATABASE project_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'project_user'@'%' IDENTIFIED BY 'StrongPassword123!'; GRANT ALL PRIVILEGES ON project_db. TO 'project_user'@'%'; FLUSH PRIVILEGES; 第三步处理项目依赖与构建。假设项目使用Maven管理,先安装JDK和Maven: sudo apt install -y openjdk-17-jdk maven # Ubuntu sudo yum install -y java-17-openjdk-devel maven # CentOS 从Git仓库克隆项目代码:`git clone https://github.com/your/project.git`,进入项目目录执行`mvn clean package`生成可执行JAR包。对于Node.js项目,需安装nvm管理多版本环境,通过`nvm install 18`安装指定版本后运行`npm install \u0026\u0026 npm run build`。 第四步实现项目自动化部署。编写启动脚本`deploy.sh`: #!/bin/bash # 停止现有服务 pid=$(ps -ef | grep 'java -jar' | grep -v grep | awk '{print $2}') [ -n "$pid" ] \u0026\u0026 kill -9 $pid # 启动新版本 nohup java -jar target/project-1.0.0.jar --spring.datasource.url=jdbc:mysql://localhost:3306/project_db > /var/log/project.log 2>\u00261 \u0026 echo "Deployment completed. PID: $!" 赋予执行权限:`chmod +x deploy.sh`,测试运行`./deploy.sh`。建议使用systemd管理服务,创建`/etc/systemd/system/project.service`: [Unit] Description=Project Service After=syslog.target network.target mysql.service [Service] User=root WorkingDirectory=/path/to/project ExecStart=/usr/bin/java -jar target/project-1.0.0.jar SuccessExitStatus=143 Restart=always [Install] WantedBy=multi-user.target 执行`sudo systemctl daemon-reload \u0026\u0026 sudo systemctl enable --now project`启用服务。 第五步构建完整的一键部署脚本。整合上述步骤到`full-deploy.sh`: #!/bin/bash # 数据库配置 echo "Configuring MySQL..." sudo mysql -uroot -p"$MYSQL_ROOT_PASS" (编辑:百客网 - 域百科网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
