MariaDB 与 MySQL
兼容性、选型;本站 MySQL8 说明。
30 分钟
MariaDB 与 MySQL
MariaDB 是 MySQL 的开源分支,协议与语法高度兼容。CodeRoadMap 以 MySQL 8.0 为准;本节帮你在 MariaDB 环境或面试选型中不踩坑。
学习目标
- 理解 MariaDB 与 MySQL 的兼容边界
- 知道 JDBC 驱动与方言配置
- 对照 pg-vs-mysql 拓宽选型视野
历史与定位
| 项目 | 说明 |
|---|---|
| MySQL | Oracle 维护,8.x 主流 |
| MariaDB | 原 MySQL 团队分支,Linux 发行版常见默认 |
| 协议 | 都 speak MySQL wire protocol |
多数 Spring Boot + JPA/MyBatis 项目 换 JDBC URL 即可跑,但细节差异存在。
ORM / 驱动配置
MySQL 8:
spring:
datasource:
url: jdbc:mysql://localhost:3306/codeforge?useSSL=false&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
MariaDB:
spring:
datasource:
url: jdbc:mariadb://localhost:3306/codeforge
driver-class-name: org.mariadb.jdbc.Driver
Hibernate dialect:MySQL8Dialect 或 MariaDB103Dialect,与服务器版本匹配。
常见差异(了解)
| topic | MySQL 8 | MariaDB |
|---|---|---|
| 窗口函数 | 支持 | 10.2+ 支持 |
| JSON | JSON 类型 + 函数 | 类似,函数名略有别 |
| 认证插件 | caching_sha2_password | 可能默认 mysql_native_password |
| 复制 / 引擎 | InnoDB 为主 | InnoDB + 部分独有特性 |
本站 schema.sql 用的 utf8mb4、InnoDB、外键——两者均支持。
本站选型
- 教程与 sql-essentials 统一 MySQL 8 语法
- 本机 MySQL80 服务降低跟练成本
- 云 RDS 国内 MySQL 文档更普及
MariaDB 用户跟练:优先用 Docker 指定版本,遇语法差异查官方 release notes。