【MySQL全面教学】MySQL基础与环境搭建Day1(2026年)

【MySQL全面教学】MySQL基础与环境搭建Day1(2026年) 写在前面这是MySQL全面教学系列的第一篇。作为后端开发数据库是必备技能而MySQL是国内使用最广泛的关系型数据库。这个系列我会从安装配置讲起一直讲到性能优化和面试高频考点。建议收藏持续更新。文章目录一、为什么学MySQL1.1 MySQL的市场地位1.2 关系型数据库 vs 非关系型数据库二、MySQL安装与配置2.1 下载安装Windows/Mac/Linux2.2 连接MySQL2.3 第一个SQL命令三、MySQL基础概念3.1 数据库、表、字段、记录3.2 SQL语句分类3.3 字符集选择utf8 vs utf8mb4四、创建第一个数据库和表4.1 创建用户管理系统数据库4.2 插入测试数据五、常用配置优化5.1 修改root密码5.2 远程访问配置六、面试高频考点考点1MySQL的默认端口是多少考点2MySQL 5.7和8.0的主要区别考点3为什么要用utf8mb4而不是utf8考点4InnoDB和MyISAM的区别七、总结参考资料一、为什么学MySQL实际场景你去面试Java/Python后端岗位10家公司有9家会在面试阶段问MySQL。为什么因为几乎所有的业务系统都需要持久化存储数据而MySQL关系型数据库就是业界标配。1.1 MySQL的市场地位1.2 关系型数据库 vs 非关系型数据库关系型数据库MySQL/Oracle/PostgreSQL ├── 结构化数据有固定表结构 ├── 支持SQL标准查询语言 ├── 支持事务ACID ├── 适合复杂查询、数据一致性要求高的场景 └── 示例电商订单系统、银行交易系统 非关系型数据库MongoDB/Redis/Elasticsearch ├── 灵活的数据模型 ├── 高性能、高可扩展 ├── 不一定支持事务 ├── 适合海量数据、高并发读写 └── 示例缓存、日志、搜索引擎二、MySQL安装与配置2.1 下载安装Windows/Mac/LinuxWindows安装官网下载https://dev.mysql.com/downloads/mysql/选择Windows (x86, 64-bit), ZIP Archive解压到C:\mysql-8.0.x创建my.ini配置文件[mysqld] basedirC:/mysql-8.0.x datadirC:/mysql-8.0.x/data port3306 character-set-serverutf8mb4 default-storage-engineINNODB [client] port3306 default-character-setutf8mb4初始化并启动# 以管理员身份运行CMDcdC:\mysql-8.0.x\bin# 初始化会生成临时密码mysqld--initialize--console# 安装服务mysqld--installMySQL80# 启动服务net start MySQL80Mac安装推荐Homebrew# 安装brewinstallmysql8.0# 启动服务brew services start mysql# 安全配置设置root密码mysql_secure_installationLinuxUbuntu安装# 更新包索引sudoaptupdate# 安装MySQLsudoaptinstallmysql-server# 启动服务sudosystemctl start mysqlsudosystemctlenablemysql# 安全配置sudomysql_secure_installation2.2 连接MySQL命令行连接# 本地连接mysql-uroot-p# 指定主机和端口mysql-hlocalhost-P3306-uroot-p# 直接执行SQL文件mysql-uroot-pscript.sql图形化工具推荐工具特点推荐度Navicat功能全面付费⭐⭐⭐⭐⭐DataGripJetBrains出品智能提示强⭐⭐⭐⭐⭐DBeaver开源免费支持多种数据库⭐⭐⭐⭐MySQL Workbench官方工具免费⭐⭐⭐HeidiSQL轻量免费Windows首选⭐⭐⭐⭐经验之谈日常开发我用DataGrip与IDEA相同的生态体感非常好。2.3 第一个SQL命令连接成功后试试这些基础命令-- 查看MySQL版本SELECTVERSION();-- 查看所有数据库SHOWDATABASES;-- 创建数据库CREATEDATABASEmydbCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;-- 使用数据库USEmydb;-- 查看当前数据库SELECTDATABASE();-- 查看所有表SHOWTABLES;三、MySQL基础概念3.1 数据库、表、字段、记录数据库Database └── 表Table ├── 字段/列Columnid, name, email... └── 记录/行Row(1, 张三, zhangsanqq.com)类比Excel数据库 一个Excel文件表 Excel中的一个Sheet字段 Sheet的列标题记录 Sheet中的一行数据3.2 SQL语句分类分类说明常用语句DDL数据定义语言CREATE, DROP, ALTERDML数据操作语言INSERT, UPDATE, DELETEDQL数据查询语言SELECTDCL数据控制语言GRANT, REVOKETCL事务控制语言COMMIT, ROLLBACK3.3 字符集选择utf8 vs utf8mb4踩坑提醒MySQL早期的utf8其实是阉割版UTF-8只支持3字节字符无法存储emoji和某些生僻汉字。一定要用utf8mb4-- 查看当前字符集SHOWVARIABLESLIKEcharacter_set%;-- 修改数据库字符集ALTERDATABASEmydbCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;-- 修改表字符集ALTERTABLEusersCONVERTTOCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;四、创建第一个数据库和表4.1 创建用户管理系统数据库-- 创建数据库CREATEDATABASEIFNOTEXISTSuser_systemCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;-- 使用数据库USEuser_system;-- 创建用户表CREATETABLEusers(idINTAUTO_INCREMENTPRIMARYKEYCOMMENT主键ID,usernameVARCHAR(50)NOTNULLUNIQUECOMMENT用户名,emailVARCHAR(100)NOTNULLUNIQUECOMMENT邮箱,phoneVARCHAR(20)COMMENT手机号,ageTINYINTUNSIGNEDCOMMENT年龄,statusTINYINTDEFAULT1COMMENT状态0-禁用1-启用,created_atTIMESTAMPDEFAULTCURRENT_TIMESTAMPCOMMENT创建时间,updated_atTIMESTAMPDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMPCOMMENT更新时间,INDEXidx_email(email),INDEXidx_phone(phone))ENGINEInnoDBDEFAULTCHARSETutf8mb4COMMENT用户表;-- 查看表结构DESCusers;-- 查看建表语句SHOWCREATETABLEusers;4.2 插入测试数据-- 单条插入INSERTINTOusers(username,email,phone,age)VALUES(zhangsan,zhangsanqq.com,13800138000,25);-- 批量插入INSERTINTOusers(username,email,phone,age)VALUES(lisi,lisiqq.com,13800138001,28),(wangwu,wangwuqq.com,13800138002,22),(zhaoliu,zhaoliuqq.com,13800138003,30);-- 查询数据SELECT*FROMusers;五、常用配置优化5.1 修改root密码-- MySQL 8.0ALTERUSERrootlocalhostIDENTIFIEDWITHmysql_native_passwordBY你的新密码;FLUSHPRIVILEGES;-- 或者创建新用户CREATEUSERadmin%IDENTIFIEDWITHmysql_native_passwordBY密码;GRANTALLPRIVILEGESON*.*TOadmin%WITHGRANTOPTION;FLUSHPRIVILEGES;5.2 远程访问配置踩坑提醒生产环境不要开放root远程访问应该创建专门的账号并限制IP。-- 创建只允许特定IP访问的账号CREATEUSERapp_user192.168.1.%IDENTIFIEDBY密码;GRANTSELECT,INSERT,UPDATE,DELETEONmydb.*TOapp_user192.168.1.%;FLUSHPRIVILEGES;六、面试高频考点考点1MySQL的默认端口是多少答案3306。如果一台服务器要运行多个MySQL实例需要修改端口如3307、3308。考点2MySQL 5.7和8.0的主要区别答案8.0默认使用caching_sha2_password认证插件5.7是mysql_native_password8.0支持窗口函数、CTE公用表表达式8.0性能提升尤其是高并发场景8.0移除了查询缓存Query Cache考点3为什么要用utf8mb4而不是utf8答案utf8在MySQL中最多支持3字节UTF-8编码无法存储4字节的emoji和某些汉字。utf8mb4支持完整的4字节UTF-8。考点4InnoDB和MyISAM的区别答案InnoDB支持事务、行级锁、外键是MySQL 5.5的默认存储引擎MyISAM不支持事务、表级锁查询速度快适合读多写少的场景已逐渐被淘汰七、总结今天我们学习了✅ MySQL的市场地位和适用场景✅ MySQL在Windows/Mac/Linux的安装方法✅ 连接MySQL的多种方式✅ 数据库、表、字段、记录的基本概念✅ SQL语句的分类DDL/DML/DQL/DCL/TCL✅ 创建数据库和表的完整流程✅ utf8mb4字符集的重要性重点记忆一定要用utf8mb4不要用utf8生产环境不要开放root远程访问InnoDB是默认且推荐的存储引擎学会使用图形化工具提高效率下一步预告Day2我们将学习MySQL的数据类型包括数值类型、字符串类型、日期类型以及选择数据类型的最佳实践。参考资料MySQL官方文档 - 安装指南MySQL 8.0 Reference Manual互动话题你在安装MySQL的时候遇到过什么问题是环境变量配置、字符集设置还是权限问题欢迎在评论区分享你的踩坑经历如果这篇文章对你有帮助欢迎点赞、收藏这是【MySQL全面教学】系列的第一篇关注我看完整套教程本文为【MySQL全面教学】系列第1篇持续更新中…