当前位置: 首页 > news >正文

一键部署MySQL

下面我为您提供一个功能全面的一键部署MySQL方案,支持多种安装方式和平台。这个方案基于当前的最佳实践,并考虑了安全性和易用性。

🚀 一键部署MySQL方案概览

不同场景下的推荐部署方式:

部署方式

适用平台

核心优势

适用场景

Shell脚本自动化部署

CentOS/Ubuntu等Linux

全自动化、可定制性强

生产环境、批量部署

Docker容器化部署

全平台支持

环境隔离、快速启动

开发测试、CI/CD

极简快速部署

Linux/Windows

步骤最少、快速验证

学习试用、临时环境

📋 详细部署指南

1. Shell脚本自动化部署(Linux环境)

以下是功能完整的MySQL自动化安装脚本,支持CentOS和Ubuntu系统:

#!/bin/bash
# MySQL一键自动化部署脚本[6](@ref)# 配置区域(用户可根据需要修改)
MYSQL_VERSION="8.0"                    # 支持5.7/8.0
ROOT_PASSWORD="Sec@Pass123!"           # root密码
APP_DB_NAME="webapp_db"                # 初始数据库名
APP_DB_USER="webapp_user"              # 应用用户名
APP_DB_PASS="App@Pass123!"             # 应用用户密码
LISTEN_ADDR="0.0.0.0"                  # 监听地址# 系统检测和安装[6](@ref)
os_check() {if [ -f /etc/redhat-release ]; thenOS="centos"elif [ -f /etc/lsb-release ]; thenOS="ubuntu"elseecho "不支持的操作系统"exit 1fi
}install_mysql() {case $OS incentos)# CentOS安装流程[1,4](@ref)rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpmdnf config-manager --disable mysql*dnf config-manager --enable mysql${MYSQL_VERSION//./}-communitydnf install -y mysql-community-server;;ubuntu)# Ubuntu安装流程[2](@ref)wget -O /tmp/mysql.deb https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.debDEBIAN_FRONTEND=noninteractive dpkg -i /tmp/mysql.debapt-get updateapt-get install -y mysql-server;;esac
}# 配置MySQL[6](@ref)
configure_mysql() {# 创建自定义配置文件cat > /etc/mysql/conf.d/custom.cnf <<EOF
[mysqld]
bind-address = $LISTEN_ADDR
default_authentication_plugin=mysql_native_password
transaction_isolation = READ-COMMITTED
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
max_connections = 2000
innodb_buffer_pool_size = 1G
EOFsystemctl start mysqldsystemctl enable mysqld
}# 安全初始化[1,6](@ref)
secure_installation() {if [ "$MYSQL_VERSION" == "8.0" ]; then# MySQL 8.0+ 密码处理[1](@ref)temp_pass=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}')mysql -uroot -p"$temp_pass" --connect-expired-password -e \"ALTER USER 'root'@'localhost' IDENTIFIED BY '$ROOT_PASSWORD'; FLUSH PRIVILEGES;"else# MySQL 5.7 安全安装[6](@ref)mysql_secure_installation <<EOF
y
$ROOT_PASSWORD
$ROOT_PASSWORD
y
y
y
y
EOFfi# 创建应用数据库和用户[6](@ref)mysql -uroot -p"$ROOT_PASSWORD" -e \"CREATE DATABASE $APP_DB_NAME; CREATE USER '$APP_DB_USER'@'%' IDENTIFIED BY '$APP_DB_PASS'; GRANT ALL PRIVILEGES ON $APP_DB_NAME.* TO '$APP_DB_USER'@'%'; FLUSH PRIVILEGES;"
}# 主执行流程
main() {echo "开始MySQL自动化部署..."os_checkinstall_mysqlconfigure_mysqlsecure_installationecho "MySQL安装完成!"echo "Root密码: $ROOT_PASSWORD"echo "应用数据库: $APP_DB_NAME"echo "应用用户: $APP_DB_USER / $APP_DB_PASS"
}main

使用方法:​

# 保存为install_mysql.sh,赋予执行权限
chmod +x install_mysql.sh
# 执行安装
sudo ./install_mysql.sh

2. Docker容器化部署方案

对于容器化环境,推荐使用Docker Compose进行部署

# docker-compose.yml
version: '3.8'
services:mysql:image: mysql:8.0container_name: mysql_serverenvironment:MYSQL_ROOT_PASSWORD: root123MYSQL_DATABASE: app_dbMYSQL_USER: app_userMYSQL_PASSWORD: app_pass123ports:- "3306:3306"volumes:- mysql_data:/var/lib/mysql- ./conf.d:/etc/mysql/conf.drestart: unless-stoppedcommand: - --character-set-server=utf8mb4- --collation-server=utf8mb4_unicode_ci- --default-authentication-plugin=mysql_native_passwordvolumes:mysql_data:

启动命令:​

docker-compose up -d

3. Windows系统极简部署

对于Windows环境,可以使用批处理脚本

@echo off
set INSTALL_DIR=C:\mysql-8.0.34-winx64
set DATA_DIR=C:\mysql_data
set ROOT_PASSWORD=Admin@123:: 下载并解压MySQL[1](@ref)
bitsadmin.exe /transfer MySQLDownload /download /priority normal https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.34-winx64.zip %TEMP%\mysql.zip
powershell Expand-Archive -Path %TEMP%\mysql.zip -DestinationPath %INSTALL_DIR%:: 初始化数据库[1,4](@ref)
mkdir %DATA_DIR%
%INSTALL_DIR%\bin\mysqld --initialize --console --datadir=%DATA_DIR% --user=root:: 启动服务
%INSTALL_DIR%\bin\mysqld --install MySQL80
net start MySQL80:: 修改密码[1](@ref)
set /p TEMP_PASSWORD=请输入临时密码:
%INSTALL_DIR%\bin\mysql -u root -p%TEMP_PASSWORD% --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '%ROOT_PASSWORD%';"

🔧 安装后配置与验证

基本连接测试

mysql -u root -p"您的密码" -e "SHOW DATABASES;"

服务状态检查

systemctl status mysqld     # Linux系统服务检查
docker ps                   # Docker容器状态检查

防火墙配置(如需要远程访问)

# CentOS
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload# Ubuntu
ufw allow 3306/tcp

⚠️ 重要注意事项

  1. 密码安全​:MySQL 8.0默认要求强密码策略,请使用包含大小写字母、数字和特殊字符的密码。

  2. 生产环境安全​:

    • 修改默认root密码

    • 限制访问IP(bind-address配置)

    • 定期进行安全审计

  3. 性能优化​:

    • 根据服务器内存调整innodb_buffer_pool_size

    • 合理设置max_connections参数

  4. 备份策略​:生产环境务必设置定期备份机制

💎 总结

以上一键部署方案涵盖了从简单测试到生产环境的不同需求。对于大多数用户,我推荐:

  • 开发测试环境​:使用Docker方案,简单快速

  • 生产环境​:使用Shell脚本方案,配置更灵活可控

  • Windows用户​:使用批处理脚本或Docker方案

http://www.dtcms.com/a/541961.html

相关文章:

  • 网站 做 专家问答汽车网站开发思路
  • float16精度、bfloat16、混合精度
  • 北京网站建设公司有哪些学代码的网站
  • 获取天气数据问题【python】
  • 北京营销型网站开发海外购物app排行榜前十名
  • 张家港网站建设制作急招临时工200元一天
  • 【笔试真题】- 浙商银行-2025.10.27
  • 必要 网站wordpress 显示文章标题
  • gps的定位图,在车的位置去寻找周围20x20的区域,怎么确定周围有多少辆车,使用什么数据结构
  • 江门城乡建设局官方网站网页设计代码居中
  • AOI在新能源电池制造领域的应用
  • 网站开发软件 连接SQL数据库网站开发难度
  • 怎么做注册账号的网站做电力产品的外贸网站
  • 精美手机网站模板网站开发常见毕业设计题目
  • 中国建设银行网站登录不上模板建站有什么优势
  • ECharts GL 3D饼图组件深度解析:从数学原理到工程实践
  • 让数据流动更智能:元数据如何重塑DataOps与ETL
  • 微信导航网站模板xcache wordpress
  • 都安做网站政务网站建设经验交流发言
  • 数据结构_深入理解堆(大根堆 小根堆)与优先队列:从理论到手撕实现
  • 线性数据结构深度解析:数组、链表、栈与队列的实现与应用
  • 顺德网站建设公司做网站送的企业邮箱能用吗
  • 兼职做国外网站钻前怀化网络推广公司
  • 如何做好楼宇自控系统设计?以服务人们需求为核心的路径
  • 做分析图网站桂林网站开发公司
  • 三亚网站建设费用郫县建设局网站
  • 网至普的营销型网站建设网页设计基础怎么制作水平导航条
  • SRE 进阶:AI 驱动的集群全自动化排查指南(零人工干预版)
  • 2025年接单经验和软件外包平台一览
  • 可以免费商用国外印花图案设计网站wordpress虚线框可序列