MySQL核心技能:从安装到基础操作全攻略
技能目标
- 理解数据库核心概念与主流数据库类型差异
- 掌握 MySQL 两种核心安装方式(源码编译、二进制包)的完整流程
- 熟练完成 MySQL 初始化、服务管理与基础命令操作
前言
21 世纪是 “数据驱动” 的时代,海量数据的存储、检索与安全管理成为企业核心需求。数据库作为数据管理的核心载体,其高效性与稳定性直接决定业务运行效率。MySQL 凭借开源、轻量、高并发等优势,成为中小型网站与企业级应用的首选数据库,也是运维与开发人员必须掌握的核心技能。
本章从数据库基础概念入手,逐步过渡到 MySQL 的安装部署与基础操作,通过全流程实操案例,帮助学习者建立数据库思维,掌握 MySQL 从环境准备到基础使用的完整技能链,为后续深入学习数据库设计与优化奠定基础。
一、数据库基础认知
1.1 数据库核心概念
1.1.1 数据与数据库
- 数据:描述事物的符号记录,包括数字、文字、图像、音频等,是数据库的基本组成单元。
- 记录:一组相关数据的集合,用于描述一个具体对象(如一条学生信息)。
- 字段:记录中的单个数据项(如学生的姓名、年龄)。
- 数据库(DB):长期存储在计算机内、有组织的、可共享的数据集合,本质是多张数据表的有序组合。
1.1.2 数据库管理系统(DBMS)
数据库管理系统是用于管理数据库的软件系统,核心功能包括:
- 数据定义:创建、修改、删除数据库与表结构
- 数据操作:增、删、改、查数据
- 数据控制:权限管理、事务管理、完整性约束
- 数据维护:备份、恢复、性能监控
常见 DBMS:MySQL、Oracle、SQL Server、PostgreSQL 等。
1.1.3 数据库发展与类型
数据库技术历经三代演进,形成两大核心类型:
- 关系型数据库(RDBMS)
- 基于关系模型,数据以二维表形式存储,通过 SQL 语言操作
- 代表产品:MySQL、Oracle、SQL Server
- 优势:数据一致性强、事务支持完善、生态成熟
- 非关系型数据库(NoSQL)
- 不遵循传统关系模型,数据存储灵活(键值对、文档、图结构等)
- 代表产品:Redis、MongoDB、Cassandra
- 优势:高并发读写、水平扩展能力强,适用于大数据场景
1.2 关系型数据库核心规则
为保障数据一致性,关系型数据库遵循四大完整性规则:
- 实体完整性:主键字段不能为空且唯一,确保每条记录可被唯一标识
- 域完整性:字段取值范围受限(如性别只能为 “男 / 女”)
- 引用完整性:外键必须引用主表中存在的记录,避免无效关联
- 用户定义完整性:业务场景自定义的约束(如年龄范围、手机号格式)
二、MySQL 安装部署实战
2.1 环境准备与基础依赖
2.1.1 基础环境配置
- 卸载系统自带 MariaDB(避免端口 / 依赖冲突):
bash
运行
[root@localhost ~]# rpm -qa | grep mariadb [root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64- 安装编译依赖包(源码编译安装需要):
bash
运行
[root@localhost ~]# dnf install -y gcc gcc-c++ make cmake bison ncurses-devel libtool openssl-devel libaio-devel- 创建专用运行用户(提升安全性):
bash
运行
[root@localhost ~]# groupadd mysql [root@localhost ~]# useradd -M -s /sbin/nologin mysql -g mysql- 关闭 SELinux 与防火墙(测试环境):
bash
运行
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config [root@localhost ~]# setenforce 0 [root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld2.2 两种 MySQL 安装方式
方式一:源码编译安装(灵活定制)
(1)下载与解压源码
bash
运行
[root@localhost ~]# wget https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.36.tar.gz [root@localhost ~]# tar -zxf mysql-8.0.36.tar.gz -C /usr/src/ [root@localhost ~]# cd /usr/src/mysql-8.0.36/(2)编译配置
bash
运行
[root@localhost mysql-8.0.36]# mkdir build && cd build [root@localhost build]# cmake .. \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_general_ci \ -DWITH_BOOST=/usr/local/boost \ -DENABLED_LOCAL_INFILE=ON核心参数说明:
CMAKE_INSTALL_PREFIX:MySQL 安装根目录MYSQL_DATADIR:数据存储目录DEFAULT_CHARSET:默认字符集(utf8mb4 支持 emoji)WITH_BOOST:Boost 库路径(MySQL 8.0 + 依赖)
(3)编译与安装
bash
运行
[root@localhost build]# make -j$(nproc) # 多核编译加速 [root@localhost build]# make install方式二:二进制包安装(快速部署)
(1)下载与解压二进制包
bash
运行
[root@localhost ~]# wget https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz [root@localhost ~]# tar -Jxf mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz -C /usr/local/ [root@localhost ~]# mv /usr/local/mysql-8.0.36-linux-glibc2.28-x86_64 /usr/local/mysql(2)配置目录权限
bash
运行
[root@localhost ~]# mkdir -p /usr/local/mysql/data [root@localhost ~]# chown -R mysql:mysql /usr/local/mysql2.3 MySQL 初始化与服务配置
2.3.1 初始化数据库
bash
运行
[root@localhost ~]# /usr/local/mysql/bin/mysqld --initialize-insecure \ --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
--initialize-insecure:无密码初始化(测试环境推荐),生产环境建议使用--initialize生成随机密码。
2.3.2 配置环境变量
bash
运行
[root@localhost ~]# echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile [root@localhost ~]# source /etc/profile # 立即生效2.3.3 配置 systemd 服务
- 复制服务脚本:
bash
运行
[root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld [root@localhost ~]# chmod +x /etc/rc.d/init.d/mysqld- 创建 systemd 服务文件:
bash
运行
[root@localhost ~]# vim /lib/systemd/system/mysqld.serviceini
[Unit] Description=MySQL Server After=network.target [Service] Type=forking ExecStart=/etc/rc.d/init.d/mysqld start ExecReload=/etc/rc.d/init.d/mysqld restart ExecStop=/etc/rc.d/init.d/mysqld stop PrivateTmp=true [Install] WantedBy=multi-user.target- 启动并设置开机自启:
bash
运行
[root@localhost ~]# systemctl daemon-reload [root@localhost ~]# systemctl start mysqld [root@localhost ~]# systemctl enable mysqld2.3.4 验证服务状态
bash
运行
[root@localhost ~]# netstat -anpt | grep 3306 # 输出包含3306端口监听信息,说明服务启动成功三、MySQL 基础操作
3.1 登录与密码管理
3.1.1 登录 MySQL
bash
运行
[root@localhost ~]# mysql -u root -p # 无密码初始化时直接回车登录3.1.2 修改 root 密码
sql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass@123'; mysql> FLUSH PRIVILEGES;3.2 基础 SQL 操作
3.2.1 查看数据库
sql
mysql> SHOW DATABASES;输出示例:
plaintext
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+3.2.2 创建与使用数据库
sql
mysql> CREATE DATABASE test_db DEFAULT CHARACTER SET utf8mb4; mysql> USE test_db;3.2.3 退出 MySQL
sql
mysql> EXIT; # 或 QUIT;总结
本章围绕 MySQL 数据库入门展开,核心知识点总结如下:
- 基础认知:理解关系型与非关系型数据库差异,掌握数据库、表、记录、字段等核心概念
- 安装部署:掌握源码编译与二进制包两种安装方式,完成初始化、服务配置与环境变量设置
- 基础操作:熟练登录 MySQL、修改密码、执行基础 SQL 语句,为后续数据库设计与开发奠定基础
通过本章学习,可建立完整的 MySQL 入门知识体系,具备独立部署与操作 MySQL 数据库的能力,适配中小型业务场景的数据库运维需求。
