news 2025/12/22 8:03:32

零基础搞定 MySQL 安装!SpringBoot 开发者专属教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
零基础搞定 MySQL 安装!SpringBoot 开发者专属教程

作为 SpringBoot 开发者,MySQL 是我们日常开发中最常接触的关系型数据库之一。稳定、轻量、开源的特性让它成为 SpringBoot 项目的标配数据源。但很多开发者,尤其是入门阶段的同学,常会在 MySQL 安装环节踩坑 —— 环境变量配置错误、权限设置不当、端口冲突等问题,都会导致后续 SpringBoot 项目无法正常连接数据库。本文将从开发者视角出发,详细讲解 Windows 和 Linux 两大主流系统下 MySQL 的安装、配置流程,以及与 SpringBoot 的基础适配,帮你彻底搞定 MySQL 安装难题。

目录

  1. 安装前准备:明确版本与环境要求
  2. Windows 系统下 MySQL 安装教程(两种方式)2.1 安装包(MSI)一键安装2.2 压缩包(ZIP)手动配置(推荐开发者)
  3. Linux 系统(CentOS7/8)下 MySQL 安装教程3.1 YUM 源安装(便捷方式)3.2 验证安装与基础配置
  4. 通用配置:MySQL 基础设置(开发者必备)4.1 修改默认端口与字符集4.2 创建 SpringBoot 专用数据库与用户4.3 开启远程访问(开发 / 测试环境)
  5. SpringBoot 连接 MySQL 测试
  6. 常见安装问题排查
  7. 总结

1. 安装前准备:明确版本与环境要求

在安装前,我们需要先确认 MySQL 版本与开发环境的兼容性,避免因版本不匹配导致 SpringBoot 连接异常:

  • 版本选择:推荐安装 MySQL 8.0(稳定版),兼容 SpringBoot 2.0 + 所有版本;若项目基于 SpringBoot 1.x,建议选择 MySQL 5.7(8.0 的认证方式变更可能导致连接失败)。
  • 环境要求
    • Windows:Win10/11 64 位系统,至少 2GB 内存,关闭占用 3306 端口的程序(如其他数据库)。
    • Linux:CentOS7/8、Ubuntu20.04+,关闭防火墙或开放 3306 端口,确保 root 权限。
  • 提前下载:从 MySQL 官方下载页(https://dev.mysql.com/downloads/mysql/)获取对应系统的安装包,优先选择 “Community Server”(社区版,免费)。

2. Windows 系统下 MySQL 安装教程(两种方式)

2.1 安装包(MSI)一键安装

适合新手快速上手,步骤如下:

  1. 双击下载的 MSI 安装包(如 mysql-installer-community-8.0.36.0.msi),选择 “Custom”(自定义安装),勾选 “MySQL Server 8.0.x”,点击 “Next”。
  2. 点击 “Execute” 安装依赖,完成后 “Next” 进入配置环节:
    • 类型选择 “Development Computer”(开发机),占用资源少,适合本地开发。
    • 端口保持默认 3306(若冲突可修改,需记录后续配置)。
    • 认证方式选择 “Use Legacy Authentication Method”(兼容 SpringBoot 旧驱动)。
  3. 设置 root 密码(务必牢记,SpringBoot 连接需用),可添加普通用户(如 dev,密码 123456),分配 “DB Owner” 权限。
  4. 配置 Windows 服务:勾选 “Start MySQL Server at System Startup”(开机自启),服务名默认 “MySQL80”。
  5. 点击 “Execute” 完成配置,最后 “Finish” 结束安装。

2.2 压缩包(ZIP)手动配置(推荐开发者)

手动配置更灵活,适合需要自定义路径的开发者:

  1. 解压 ZIP 包到指定目录(如 D:\mysql-8.0.36),该目录命名为 MYSQL_HOME。
  2. 配置环境变量:
    • 新建系统变量 MYSQL_HOME,值为解压路径(D:\mysql-8.0.36)。
    • 在 Path 变量中添加 % MYSQL_HOME%\bin,保存生效。
  3. 创建配置文件:在 MySQL 根目录下新建 my.ini 文件,写入以下内容(适配 SpringBoot 开发):

    ini

    [mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 basedir=D:\mysql-8.0.36 # 设置mysql数据库的数据的存放目录 datadir=D:\mysql-8.0.36\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为utf8mb4 character-set-server=utf8mb4 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 认证方式(兼容旧驱动) default_authentication_plugin=mysql_native_password [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8mb4
  4. 初始化并启动服务:
    • 以管理员身份打开 CMD,执行mysqld --initialize --console,记录控制台输出的临时密码(如 root@localhost: xxxxxx)。
    • 安装服务:mysqld --install MySQL80(服务名 MySQL80)。
    • 启动服务:net start MySQL80
    • 修改 root 密码:mysql -u root -p,输入临时密码后执行ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';

3. Linux 系统(CentOS7/8)下 MySQL 安装教程

3.1 YUM 源安装(便捷方式)

Linux 是生产环境主流,YUM 安装更高效:

  1. 卸载系统自带的 MariaDB(避免冲突):

    bash

    运行

    rpm -qa | grep mariadb # 查看已安装的MariaDB rpm -e --nodeps mariadb-libs-xxx # 卸载对应包
  2. 添加 MySQL YUM 源:

    bash

    运行

    wget https://dev.mysql.com/get/mysql80-community-release-el8-3.noarch.rpm rpm -ivh mysql80-community-release-el8-3.noarch.rpm
  3. 安装 MySQL 服务:

    bash

    运行

    yum install -y mysql-community-server
  4. 启动并设置开机自启:

    bash

    运行

    systemctl start mysqld # 启动服务 systemctl enable mysqld # 开机自启 systemctl status mysqld # 查看服务状态
  5. 获取临时密码并修改:

    bash

    运行

    grep 'temporary password' /var/log/mysqld.log # 查看临时密码 mysql -u root -p # 登录 ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; # 修改密码(需包含大小写、数字、特殊字符)

3.2 验证安装与基础配置

执行mysql -V(注意大写 V),若输出 MySQL 版本信息,说明安装成功。Linux 下需关闭防火墙或开放 3306 端口:

bash

运行

# 临时关闭防火墙(开发环境) systemctl stop firewalld # 永久开放3306端口 firewall-cmd --add-port=3306/tcp --permanent firewall-cmd --reload

4. 通用配置:MySQL 基础设置(开发者必备)

安装完成后,需做针对性配置,适配 SpringBoot 开发需求:

4.1 修改默认端口与字符集

  • 端口修改:编辑 my.ini(Windows)或 /etc/my.cnf(Linux),修改port=3306为自定义端口(如 3307),重启服务生效。
  • 字符集配置:确保character-set-server=utf8mb4(支持 emoji,适配业务场景),执行show variables like 'character_set_%';验证字符集。

4.2 创建 SpringBoot 专用数据库与用户

避免直接使用 root 用户连接 SpringBoot,降低权限风险:

sql

-- 创建数据库(命名与项目一致,如springboot_demo) CREATE DATABASE IF NOT EXISTS springboot_demo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 创建用户(如dev,密码123456) CREATE USER 'dev'@'localhost' IDENTIFIED BY '123456'; -- 授权用户访问指定数据库 GRANT ALL PRIVILEGES ON springboot_demo.* TO 'dev'@'localhost'; -- 刷新权限 FLUSH PRIVILEGES;

4.3 开启远程访问(开发 / 测试环境)

本地 SpringBoot 项目连接远程 MySQL 时,需开启远程访问:

sql

-- 修改用户允许远程连接(%表示任意IP) ALTER USER 'dev'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION; CREATE USER 'dev'@'%' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON springboot_demo.* TO 'dev'@'%'; FLUSH PRIVILEGES;

Linux 下需额外关闭 SELinux(临时:setenforce 0;永久:修改 /etc/selinux/config,设置 SELINUX=disabled)。

5. SpringBoot 连接 MySQL 测试

安装配置完成后,通过 SpringBoot 项目验证连接:

  1. 创建 SpringBoot 项目,引入依赖(pom.xml):

    xml

    <dependencies> <!-- SpringBoot Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MySQL驱动 --> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope> </dependency> <!-- MyBatis-Plus(可选,简化CRUD) --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.1</version> </dependency> </dependencies>
  2. 配置 application.yml:

    yaml

    spring: datasource: url: jdbc:mysql://localhost:3306/springboot_demo?useUnicode=true&characterEncoding=utf8mb4&useSSL=false&serverTimezone=Asia/Shanghai username: dev password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver
  3. 编写测试类:

    java

    运行

    @SpringBootTest public class MysqlConnectionTest { @Autowired private DataSource dataSource; @Test public void testConnection() throws SQLException { Connection connection = dataSource.getConnection(); System.out.println("数据库连接成功:" + connection); connection.close(); } }

运行测试,若控制台输出连接信息,说明 MySQL 与 SpringBoot 适配成功。

6. 常见安装问题排查

  1. 3306 端口被占用:Windows 执行netstat -ano | findstr 3306查看占用进程,结束进程或修改 MySQL 端口;Linux 执行lsof -i:3306,杀死对应进程。
  2. SpringBoot 连接报 “Access denied”:检查用户名 / 密码是否正确,用户是否允许远程访问,MySQL 认证方式是否为 mysql_native_password。
  3. Linux 启动 MySQL 失败:查看日志cat /var/log/mysqld.log,常见原因是 SELinux 未关闭、权限不足(执行chown -R mysql:mysql /var/lib/mysql)。
  4. 字符集乱码:确保数据库、表、字段字符集均为 utf8mb4,SpringBoot 连接 URL 添加characterEncoding=utf8mb4

7. 总结

MySQL 的安装是 SpringBoot 开发的基础环节,核心在于 “匹配版本 + 正确配置 + 权限管控”。Windows 下推荐压缩包手动配置,便于自定义;Linux 下优先 YUM 安装,适配生产环境。安装完成后,务必创建专用数据库和用户,开启必要的远程访问,并通过 SpringBoot 项目验证连接,避免后续开发中因环境问题耽误进度。

此外,生产环境中还需注意 MySQL 的性能调优(如调整连接数、缓存大小)、数据备份、主从复制等,但对于入门阶段,掌握本文的安装和基础配置,足以支撑日常 SpringBoot 开发。希望本文能帮你避开安装坑,让 MySQL 成为你 SpringBoot 项目的 “稳定后盾”。

在博文中添加一些常见的安装错误及解决方法

写一篇关于如何在Spring Boot中使用MySQL数据库的教程

推荐一些关于Spring Boot和MySQL的学习资源

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/20 23:37:39

AutoGPT使用与架构全面解析

AutoGPT&#xff1a;当大模型开始“自己做事” 想象一下&#xff0c;你只需要说一句&#xff1a;“帮我写一份关于2024年可再生能源趋势的报告”&#xff0c;然后一个AI代理就开始自己上网查资料、整理数据、画图表、写初稿、反复修改&#xff0c;直到交出一篇完整的文档——整…

作者头像 李华
网站建设 2025/12/20 13:55:31

高性能AI服务搭建:TensorRT与FP16精度校准实践

高性能AI服务搭建&#xff1a;TensorRT与FP16精度校准实践 在当前AI模型日益庞大、推理请求并发不断攀升的背景下&#xff0c;如何在有限硬件资源下实现低延迟、高吞吐的服务响应&#xff0c;已成为工程落地的核心挑战。尤其在电商推荐、视频分析、自动驾驶等实时性敏感场景中&…

作者头像 李华
网站建设 2025/12/21 1:51:07

Dify与Anything-LLM整合打造企业智能问答系统

Dify与Anything-LLM整合打造企业智能问答系统 在一家中型科技公司的人力资源部&#xff0c;每天早上刚过九点&#xff0c;HR专员小李的钉钉就响个不停。 “年假怎么算&#xff1f;” “哺乳期每天能有几次哺乳时间&#xff1f;” “出差住宿标准是单间还是标间&#xff1f;” …

作者头像 李华
网站建设 2025/12/20 19:38:27

EmotiVoice:开源多情感TTS语音合成新体验

EmotiVoice&#xff1a;让机器声音拥有情感温度 你有没有想过&#xff0c;有一天你的电子书会用你自己的声音朗读给你听&#xff1f;或者游戏里的NPC在危急时刻真的“吓得发抖”&#xff1f;又或者一个语音助手不再冷冰冰地报天气&#xff0c;而是带着一丝清晨的愉悦说&#x…

作者头像 李华
网站建设 2025/12/21 12:33:31

HunyuanVideo-Foley API详解与实战调用

HunyuanVideo-Foley API详解与实战调用 你有没有遇到过这样的情况&#xff1a;精心剪辑的视频&#xff0c;画面流畅、节奏精准&#xff0c;可一播放——静音&#xff1f; 没有脚步声、没有环境音、甚至连杯子碰桌的“叮”一声都没有……观众看得再认真&#xff0c;也会觉得“少…

作者头像 李华
网站建设 2025/12/20 21:43:03

FLUX.1-dev-Controlnet-Union环境配置全指南

FLUX.1-dev-Controlnet-Union环境配置全指南&#xff1a;从零部署下一代文生图全能模型 在生成式AI的浪潮中&#xff0c;FLUX.1-dev-Controlnet-Union 的出现像是一次“视觉语言理解”的跃迁。它不仅继承了 FLUX.1-dev 在图像细节与提示词遵循上的极致表现&#xff0c;更通过 …

作者头像 李华