数据库基础:MySQL 安装与基础操作
前言 :本文是"数据库基础"系列的第五篇。前面四篇我们完成了 Linux 系统的安装、网络配置、常用命令和系统管理的学习。本篇我们将正式进入数据库的核心------MySQL 8.0 的安装与基础操作。掌握 MySQL 的安装和基本使用,是后续学习 SQL 语句和数据库管理的前提。
目录
- 一、数据库简介
- 二、MySQL 安装
- 三、MySQL 基础操作
- 四、总结
一、数据库简介
1.1 数据库的好处
| 优势 | 说明 |
|---|---|
| 数据持久化 | 数据可以长期保存在磁盘中,不会因程序关闭而丢失 |
| 统一管理 | 使用完整的管理系统统一管理数据,易于查询和维护 |
| 高效检索 | 通过索引等机制,可以快速检索大量数据 |
1.2 数据库相关概念
| 概念 | 英文 | 说明 |
|---|---|---|
| 数据库 | DB(Database) | 存储数据的"仓库",保存了一系列有组织的数据 |
| 数据库管理系统 | DBMS(Database Management System) | 用于管理数据库的软件(如 MySQL、Oracle) |
| SQL | Structured Query Language | 结构化查询语言,用于和 DBMS 通信的语言 |
关系说明:SQL → DBMS → DB
1.3 常见的数据库管理系统
| 数据库 | 特点 |
|---|---|
| MySQL | 开源免费,应用广泛,社区活跃 |
| Oracle | 功能强大,收费,大型企业常用 |
| SQL Server | 微软产品,与 Windows 生态集成好 |
| PostgreSQL | 开源,功能丰富,适合复杂查询 |
1.4 SQL 语言的分类
| 分类 | 全称 | 说明 |
|---|---|---|
| DQL | 数据查询语言(Data Query Language) | 查询数据(SELECT) |
| DML | 数据操作语言(Data Manipulation Language) | 增删改数据(INSERT、UPDATE、DELETE) |
| DDL | 数据定义语言(Data Definition Language) | 定义表结构(CREATE、ALTER、DROP) |
| TCL | 事务控制语言(Transaction Control Language) | 事务管理(COMMIT、ROLLBACK) |
| DCL | 数据控制语言(Data Control Language) | 权限管理(GRANT、REVOKE) |
1.5 SQL 的优点
- 通用性:几乎所有 DBMS 都支持 SQL
- 简单易学:语法接近自然语言
- 功能强大:通过组合可以实现复杂的数据库操作
二、MySQL 安装
2.1 安装前准备
上传安装包
将 mysql8.tar.gz 上传到虚拟机的 /usr/packages/ 目录下。
bash
# 创建 packages 目录(存放安装包)
[root@master ~]# mkdir -p /usr/packages
# 进入 packages 目录
[root@master ~]# cd /usr/packages/
解压 MySQL 安装包
bash
[root@master packages]# tar -xzvf mysql8.tar.gz
[root@master packages]# cd mysql8/
[root@master mysql8]# ls
mysql-community-client-8.0.33-1.el7.x86_64.rpm
mysql-community-common-8.0.33-1.el7.x86_64.rpm
mysql-community-icu-data-files-8.0.33-1.el7.x86_64.rpm
mysql-community-libs-8.0.33-1.el7.x86_64.rpm
mysql-community-server-8.0.33-1.el7.x86_64.rpm
卸载系统自带的 mariadb
CentOS 7 默认带有 mariadb,与 MySQL 冲突,需要先卸载:
bash
# 查看系统自带的 mariadb
[root@master ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
# 卸载 mariadb
[root@master ~]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
2.2 安装 MySQL
安装 MySQL 依赖
bash
[root@master ~]# yum install -y perl libaio net-tools
安装 MySQL
进入解压目录,按顺序安装 rpm 包(顺序不能错):
bash
[root@master mysql8]# rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm
[root@master mysql8]# rpm -ivh mysql-community-icu-data-files-8.0.33-1.el7.x86_64.rpm
[root@master mysql8]# rpm -ivh mysql-community-libs-8.0.33-1.el7.x86_64.rpm
[root@master mysql8]# rpm -ivh mysql-community-client-8.0.33-1.el7.x86_64.rpm
[root@master mysql8]# rpm -ivh mysql-community-server-8.0.33-1.el7.x86_64.rpm
注意:如果安装时提示依赖错误,按提示安装缺失的依赖包。
验证安装
bash
[root@master ~]# mysql --version
mysql Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)
2.3 初始化与启动
初始化 MySQL
bash
[root@master ~]# mysqld --initialize --user=mysql
修改 mysql 权限
bash
[root@master ~]# chown -R mysql:mysql /var/lib/mysql/
启动 MySQL
bash
[root@master ~]# systemctl start mysqld
[root@master ~]# systemctl enable mysqld # 设置开机自启
查看 MySQL 服务状态
bash
[root@master ~]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2026-08-25 19:13:00 CST; 1h 28min ago
查看 MySQL 初始密码
MySQL 安装后会生成一个临时 root 密码,保存在日志文件中:
bash
[root@master ~]# grep 'temporary password' /var/log/mysqld.log
2026-08-14T01:40:46.129979Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: IorwnZqw51=B
2.4 配置 MySQL
登录 MySQL
使用临时密码登录:
bash
[root@master ~]# mysql -uroot -p
Enter password: IorwnZqw51=B
mysql>
注意 :如果密码包含特殊字符,可能需要加单引号:
mysql -uroot -p'IorwnZqw51=B'
修改 root 密码
sql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
MySQL 8.0 默认要求密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,长度至少 8 位。
设置一个符合要求的密码:
sql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@123456';
Query OK, 0 rows affected (0.01 sec)
配置远程访问
MySQL 默认只允许本地登录,如果需要从其他机器连接,需要修改配置。
sql
mysql> USE mysql;
Database changed
mysql> SELECT user, host FROM user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
mysql> UPDATE user SET host="%" WHERE user="root";
Query OK, 1 row affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> QUIT;
Bye
2.5 卸载 MySQL
如果因安装失败或其他原因需要卸载重装,按以下步骤操作:
bash
# 1. 停止 MySQL 服务
[root@master ~]# systemctl stop mysqld
[root@master ~]# systemctl status mysqld # 查看状态
# 2. 清空数据目录
[root@master ~]# cd /var/lib/mysql/
[root@master mysql]# rm -rf * # 注意命令位置
# 3. 卸载 MySQL 相关包
[root@master ~]# rpm -e --nodeps `rpm -qa | grep mysql`
三、MySQL 基础操作
3.1 服务的启动与停止
bash
# 启动 MySQL
systemctl start mysqld
# 停止 MySQL
systemctl stop mysqld
# 重启 MySQL
systemctl restart mysqld
# 查看 MySQL 状态
systemctl status mysqld
3.2 服务的登录与退出
bash
# 登录 MySQL
mysql -u用户名 -p密码
# 示例
mysql -uroot -p
mysql -uroot -p123456
# 退出 MySQL
exit
# 或
quit
3.3 常见 SQL 命令
数据库操作
sql
-- 查看当前所有的数据库
SHOW DATABASES;
-- 创建数据库
CREATE DATABASE test_db;
-- 切换数据库
USE test_db;
-- 查看当前所在数据库
SELECT DATABASE();
-- 删除数据库(慎用)
DROP DATABASE test_db;
表操作
sql
-- 查看当前库的所有表
SHOW TABLES;
-- 查看其它库的所有表
SHOW TABLES FROM mysql;
-- 创建表
CREATE TABLE student (
id INT,
name VARCHAR(20),
age INT
);
-- 查看表结构
DESC student;
-- 删除表(慎用)
DROP TABLE student;
数据操作
sql
-- 插入数据
INSERT INTO student VALUES (1, '张三', 20);
INSERT INTO student (id, name, age) VALUES (2, '李四', 22);
-- 查询数据
SELECT * FROM student;
SELECT id, name FROM student WHERE age > 20;
-- 更新数据
UPDATE student SET age = 21 WHERE id = 1;
-- 删除数据(慎用)
DELETE FROM student WHERE id = 2;
3.4 查看版本信息
sql
-- 方式一:登录 MySQL 后执行
SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.33 |
+-----------+
-- 方式二:未登录 MySQL 时
[root@master ~]# mysql --version
mysql Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)
[root@master ~]# mysql -V
mysql Ver 8.0.33 for Linux on x86_64 (MySQL Community Server - GPL)
3.5 SQL 语法规范
| 规范 | 说明 |
|---|---|
| 大小写 | 不区分大小写,但建议关键字大写,表名/列名小写 |
| 语句结束 | 每条命令以分号 ; 结尾 |
| 缩进换行 | 可根据需要缩进或换行,提高可读性 |
| 单行注释 | # 注释文字 |
| 单行注释 | -- 注释文字(注意空格) |
| 多行注释 | /* 注释文字 */ |
四、总结
核心知识点速查
| 知识点 | 关键概念 |
|---|---|
| 数据库 | 存储数据的仓库(DB) |
| DBMS | 数据库管理软件(如 MySQL) |
| SQL | 与数据库通信的语言 |
| DQL/DML/DDL/TCL/DCL | SQL 语言分类 |
| rpm 安装 MySQL | 按顺序安装 rpm 包 |
| 初始密码 | 查看 /var/log/mysqld.log |
| ALTER USER | 修改 root 密码 |
| 远程访问 | 修改 host 为 % |
常用命令速查
| 用途 | 命令 |
|---|---|
| 启动 MySQL | systemctl start mysqld |
| 停止 MySQL | systemctl stop mysqld |
| 查看状态 | systemctl status mysqld |
| 登录 MySQL | mysql -uroot -p |
| 查看所有数据库 | SHOW DATABASES; |
| 切换数据库 | USE 库名; |
| 查看所有表 | SHOW TABLES; |
| 查看表结构 | DESC 表名; |
| 查看版本 | SELECT VERSION(); |
注意事项
| 要点 | 说明 |
|---|---|
| 关闭防火墙 | 安装前建议关闭防火墙,避免端口被拦截 |
| 卸载 mariadb | 安装 MySQL 前必须卸载系统自带的 mariadb |
| 安装顺序 | rpm 包安装顺序不能错 |
| 初始密码 | 首次登录必须用临时密码,登录后立即修改 |
| 密码强度 | MySQL 8.0 默认要求强密码 |
| 注释格式 | -- 注释后面要加空格 |
系列直达
- 上篇 :Linux基础:系统管理与定时任务
- 本篇:数据库基础:MySQL 安装与基础操作(本文)
- 下篇:敬请期待