☰
电脑上怎么启动和连接MySQL(本地+Docker版)
2026/10/17 2:48:31 网站建设 项目流程

先讲Docker的

Docker

先简单认识一下Docker,经常使用Docker的都知道里面有镜像和容器两个东西。三者之间最重要的一句话是:Docker 用镜像做出容器

Docker里面可以有很多镜像 镜像里面可以创建很多容器

  • 一个镜像,可以跑出很多个容器,互相不影响。
  • 容器里改的东西,删掉容器就没了;镜像本身不会变。
  • 容器不是天天新建,停止后还在,只是没在运行。

所以镜像相当于一个模板,而容器就是它的一个实例

这里要用的镜像就是mysql 8.4,所创建的容器就是ai-kb-mysql,如下图

这里解释一下:

图中的ai-knowledge-base是什么

它是Docker Compose 的项目名(project),来自你docker-compose.yml所在的文件夹名ai-knowledge-base。

Compose 的逻辑是:一个 yml 文件 = 一个项目,项目里可以有多个服务,每个服务跑出一个容器。Docker Desktop 就按项目把容器归成一组,方便你看和批量操作。

所以这里创建了两个容器,分别有自己的镜像,本节只讲mysql相关的

启动容器

方法一

打开Docker Desktop,图形界面里点一下 ▶就启动了容器

方法二

用命令行

先打开Docker Desktop

在含有docker-compose.yml的目录下的终端输入:

docker compose up -d # 启动
docker compose ps # 用来检查,看状态,应为 running

这里再扩展一下compose的一些细节

docker compose up不带-f时,只会自动找这四个名字(在当前目录):

compose.yaml ✅ compose.yml ✅ docker-compose.yaml ✅ docker-compose.yml ✅ ← 最常用

注意是.yml或.yaml都行,但不能是docker-compose.yaml.txt(记事本可能偷偷加后缀)、也不能是docker-mysql.yml这种自定义名。

如果带-f,就直接

docker compose -f 文件名 up -d

-d 后面还可以跟要打开的镜像名称例如:

docker compose -f docker-compose.yml up -d mysql

连接

先理解一下项目中存在的一些配置文件

  • docker-compose.yml用来统一描述和启动项目依赖的服务
services: mysql: image: mysql:8.4 container_name: ai-kb-mysql restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: root123456 # 首次初始化:root 密码 MYSQL_DATABASE: ai_knowledge_base # 首次初始化:自动建库(已有卷则不会重建) TZ: Asia/Shanghai ports: - "3307:3306" volumes: - mysql_data:/var/lib/mysql redis: image: redis:7.4 container_name: ai-kb-redis restart: unless-stopped ports: - "6379:6379" volumes: - redis_data:/data volumes: mysql_data: redis_data:

这个配置主要启动两个服务分别是:

  • mysql:项目使用的 MySQL 数据库
  • redis:项目后续用于缓存、验证码等功能的 Redis

当执行

docker compose up -d mysql

启动docker后,Docker 会根据配置:

  1. 下载mysql:8.4镜像(如果本地没有)
  2. 创建名为ai-kb-mysql的容器
  3. 设置数据库密码和数据库名
  4. 把电脑的3307端口映射到容器的3306端口
  5. 保存数据库数据,避免容器删除后数据丢失

  • application.properties负责告诉 Spring Boot 如何连接它
spring.application.name=backend # MySQL ????? spring.datasource.url=jdbc:mysql://localhost:3307/ai_knowledge_base?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=root123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # Redis?? spring.data.redis.host=localhost spring.data.redis.port=6379 jwt.secret=${JWT_SECRET}

spring.datasource.url=jdbc:mysql://localhost:3307/ai_knowledge_base

这一句是和上面的docker-compose.yml的一些信息对上的


所以,事实上在配置信息正确的情况下 想要让项目连接上数据库 只需要正常启动后端就行(点击绿色小图标或者cd backend mvn spring-boot:run)

再插一嘴,这里是让项目连接数据库,并不是让自己去对数据库进行操作,如果想操作数据库,就是另外的方法:

mysql -h 127.0.0.1 -P 3307 -u root -p*******如果直接写密码-p和密码之间不能有空格,但一般是先写-p,回车,再填密码(这样会安全一点)

也可以mysql -h localhost -P 3307 -u root -p*******

这里127.0.0.1和localhost的区别在大多数情况下不用管,但是还是值得深究的(有大佬可以讲解一下)

本地

Get-Service MySQL用来查询 MySQL 服务的状态
Start-Service MySQL用来启动一个已停止的 MySQL 服务

连接

在配置信息正确的情况下 想要让项目连接上数据库 只需要正常启动后端就行

这里要和Docker区分的是他们两个的端口不一样,本地的一般就是3306,Docker(做演示的)是3307,所以在配置文件中会略有区别

当然,一个端口里可以有很多个库

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询