数据库基础:MySQL 安装与基础操作

数据库基础: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 默认要求强密码
注释格式 -- 注释后面要加空格

系列直达

相关推荐
xieliyu.1 小时前
MySQL 进阶笔记:用户 / 会话 / 全局 / 局部变量 + CASE 分支语法
开发语言·数据库·笔记·mysql
xcLeigh1 小时前
把CPU、内存、网络流量同时丢给TimechoAI,做交叉分析
数据库·内存·时序数据库·cpu·网络流量·timechoai·交叉分析
不好听6131 小时前
外键的 ON DELETE 与 ON UPDATE:父子表如何联动
数据库
ZGG0031 小时前
底座 01:Agent 的 token 成本怎么砍——Redis 缓存实战
数据库·redis·缓存
小小龙学IT1 小时前
Qt Graphics View Framework(图形视图框架)深度解析:从 Scene/View/Item 到工业级 2D 场景
开发语言·数据库·qt
aikopen1 小时前
高可用 API 网关限流与微服务过载保护实战:从 Sentinel 动态阈值到 DB 连接池舱壁
数据库·微服务·sentinel
whcyhhh1 小时前
头歌实践教学平台:数据科学与大数据技术导论(七下)
大数据·数据库·python
迪康coolmu1 小时前
企业IT运维闭环——工单管理与远程协助一体化实践
java·大数据·运维·网络·数据库·人工智能·安全
川石课堂软件测试2 小时前
自动化测试常见的异常处理
python·jmeter·mysql·docker·容器·单元测试·grafana