1 什么是数据库

1.1 数据
数据是描述事物的符号记录,其表现形式多样,包括但不限于数字、文字、图形、图像、声音、语言等。无论哪种形式,都可通过数字化处理后存储到计算机中,是数据库存储的核心对象。
1.2 数据库
数据库(Database,DB)是长期存储在计算机内、有组织、可共享的大量数据的集合。其核心特征如下:
| 数据结构化 | 数据按照统一的逻辑结构(如关系模型的表结构)组织,不同数据之间存在明确关联,而非杂乱无章的堆积 |
| 共享性高、冗余度低、易扩充 | 多个用户 / 应用可同时访问数据库;数据重复存储的比例极低,节省存储空间;新增 / 修改数据结构时,对现有应用影响小,易于扩展 |
| 数据独立性高 | 分为物理独立性(数据存储位置 / 方式改变,不影响应用程序)和逻辑独立性(数据逻辑结构改变,应用程序无需修改) |
| 统一管理与控制 | 由数据库管理系统(DBMS)负责,核心管控能力包括:1. 安全性:防止未授权访问 / 篡改数据2. 完整性:保证数据的准确性、一致性(如字段非空、唯一约束)3. 并发控制:解决多用户同时操作数据的冲突问题4. 故障恢复:数据异常时(如断电)可恢复到正常状态 |
2 MySQL 概述
2.1 发展历程
- 最初由瑞典 MySQL AB 公司开发,是一款开源的关系型数据库管理系统(RDBMS);
- 2008 年 1 月,Sun 公司以 10 亿美金收购 MySQL AB;
- 2009 年,Oracle 公司以 74 亿美金收购 Sun 公司,MySQL 正式归入 Oracle 旗下。
2.2 核心优势与应用场景
- 优势:体积小巧、运行速度快、部署 / 使用成本低、完全开源(社区版)、跨平台(支持 Linux/Windows/Mac 等);
- 应用场景:广泛用于 Internet 中小型网站、轻量级企业应用、个人开发项目,是 LAMP(Linux+Apache+MySQL+PHP)/LNMP(Linux+Nginx+MySQL+PHP)架构的核心组件。
3 版本及下载

3.1 版本分类
MySQL 主要分为社区版(MySQL Community Server)和商业版(MySQL Enterprise Edition):
- 社区版:免费开源,满足绝大部分中小型应用需求;
- 商业版:收费,提供官方技术支持、高级功能(如企业级监控、安全加固)。
3.2 下载地址与教程
- 官方下载地址:https://dev.mysql.com/downloads/mysql/(可选择对应系统 / 版本);
- 版本安装教程(以 5.7 为例):https://dev.mysql.com/doc/refman/5.7/en/installing.html;
- 注意:下载时需匹配操作系统版本(如 CentOS 8/EulerOS 22 对应 RedHat 8 系列)、CPU 架构(x86_64/arm64 等)。
4 Yum 仓库安装(CentOS/RHEL/EulerOS)

4.1 添加 Yum 源

步骤 1:访问官方源页面

步骤 2:下载并安装 Yum 源
# 下载MySQL 8.0 Yum源包(以el8版本为例)
[root@server ~]# wget https://dev.mysql.com/get/mysql80-community-release-el8-9.noarch.rpm
# 安装Yum源包(安装后会在/etc/yum.repos.d/生成mysql相关repo文件)
[root@server ~]# rpm -ivh mysql80-community-release-el8-9.noarch.rpm
# 验证Yum源是否生效(列出所有mysql相关包)
[root@server ~]# yum list | grep mysql
4.2 安装 MySQL 服务
步骤 1:安装核心包
# 安装MySQL社区版服务端(自动依赖安装客户端、公共库等)
[root@server ~]# yum install mysql-community-server.x86_64 -y
步骤 2:启动并检查服务状态
# 启动mysqld服务(注意服务名带d,代表daemon守护进程)
[root@server ~]# systemctl start mysqld
# 查看服务状态(active (running) 表示启动成功)
[root@server ~]# systemctl status mysqld
# 可选:设置开机自启
[root@server ~]# systemctl enable mysqld
步骤 3:获取初始临时密码
MySQL 首次启动会自动为 root@localhost生成临时密码,存储在日志文件中:
[root@server ~]# grep 'temporary password' /var/log/mysqld.log
# 示例输出:2023-07-09T02:38:36.368700Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: qQ6OmpD?8_.f
# 上述输出中「qQ6OmpD?8_.f」即为初始密码,需复制保存
步骤 4:登录并修改密码
# 以root身份登录MySQL(输入临时密码)
[root@server ~]# mysql -u root -p
Enter password: # 粘贴上述临时密码
# 修改root密码(需符合默认密码规则)
mysql> alter user 'root'@'localhost' identified by 'Admin123!';
步骤 5:密码规则详解与调整
查看默认密码规则
mysql> show variables like 'validate_password.%';
# 输出解析:
# +————————————–+——–+
# | Variable_name | Value |
# +————————————–+——–+
# | validate_password.check_user_name | ON | # 禁止密码与用户名相同
# | validate_password.dictionary_file | | # 密码字典文件(空则不校验)
# | validate_password.length | 8 | # 密码最小长度
# | validate_password.mixed_case_count | 1 | # 至少1个大小写字母
# | validate_password.number_count | 1 | # 至少1个数字
# | validate_password.policy | MEDIUM | # 验证策略(LOW/MEDIUM/STRONG)
# | validate_password.special_char_count | 1 | # 至少1个特殊字符
# +————————————–+——–+
调整密码规则(测试环境可选,生产不推荐)
# 降低验证策略为LOW(仅校验长度)
mysql> set global validate_password.policy=low;
# 缩短密码最小长度为6位
mysql> set global validate_password.length=6;
# 设置简单密码(如123456)
mysql> alter user 'root'@'localhost' identified by '123456';
# 退出MySQL
mysql> exit
Bye
步骤 6:验证登录与基础操作
# 重新登录(输入新密码123456)
[root@server ~]# mysql -u root -p
Enter password: 123456
# 查看所有数据库(注意结尾分号,s不可省略)
mysql> show databases;
# 示例输出:
# +——————–+
# | Database |
# +——————–+
# | information_schema | # 元数据信息库
# | mysql | # 系统核心库(存储用户、权限等)
# | performance_schema | # 性能监控库
# | sys | # 简化性能监控的视图库
# +——————–+
# 查看MySQL默认端口(默认3306)
mysql> show global variables like 'port';
# 退出MySQL
mysql> quit
Bye
5 本地 RPM 包安装(无网络环境适用)
5.1 下载 RPM 集合包

5.2 上传安装包
使用 XFTP/SCP 等工具将下载的 RPM 集合包上传到 Linux 服务器(如 /root 目录)。
5.3 安装步骤
步骤 1:解压 RPM 集合包
# 切换到根目录(或上传包所在目录)
[root@server ~]# cd /
# 解压集合包(生成多个单独的RPM包)
[root@server /]# tar -xvf mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar
步骤 2:安装核心 RPM
# 本地安装(–nogpgcheck可选,跳过GPG校验)
[root@server /]# yum localinstall -y \\
mysql-community-server-8.0.32-1.el9.x86_64.rpm \\ # 服务端(必装)
mysql-community-client-8.0.32-1.el9.x86_64.rpm \\ # 客户端(必装)
mysql-community-common-8.0.32-1.el9.x86_64.rpm \\ # 公共库(必装)
mysql-community-icu-data-files-8.0.32-1.el9.x86_64.rpm \\ # ICU数据文件(必装)
mysql-community-client-plugins-8.0.32-1.el9.x86_64.rpm \\ # 客户端插件(必装)
mysql-community-libs-8.0.32-1.el9.x86_64.rpm # 开发库(可选,C/C++开发用)
步骤 3:启动服务并获取临时密码
# 启动服务
[root@server /]# systemctl start mysqld
# 查看服务状态
[root@server /]# systemctl status mysqld
# 获取初始临时密码
[root@server /]# grep password /var/log/mysqld.log
# 示例输出:2023-02-09T03:55:47.305118Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: q&2PO.yJZ+Hp
步骤 4:登录并重置密码
# 登录MySQL(输入临时密码)
[root@server /]# mysql -u root -p
Enter password: q&2PO.yJZ+Hp
# 首次登录执行任意命令会提示重置密码
mysql> show databases;
# 报错:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
# 重置密码(符合默认规则)
mysql> alter user 'root'@'localhost' identified by 'MyNewPass1!';
# 退出MySQL
mysql> exit
Bye
6 通用二进制包安装(生产环境首选)
6.1 二进制包优势
- 预编译完成,安装速度快;
- 自定义程度高(可指定安装目录、数据目录);
- 稳定性好,是生产环境主流安装方式;
- 二进制包:源码包编译后生成的可执行文件包,无需编译即可使用。
6.2 下载二进制包

- 系统 glibc 版本(如 glibc2.17);
- CPU 架构(x86_64/arm64);
- 版本(如 8.0.33);
- 选择「Linux – Generic」下的「Compressed TAR Archive」包。
6.3 上传软件包
使用 XFTP 将二进制包上传到 Linux 服务器根目录(/)。
6.4 解压缩
# 切换到根目录
[root@server ~]# cd /
# 解压外层tar包(生成xz压缩包)
[root@server /]# tar xvf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar
# 解压核心xz包(生成安装目录)
[root@server /]# tar xvf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz
# 验证解压结果(查看生成的目录)
[root@server /]# ls
# 示例输出:mysql-8.0.33-linux-glibc2.17-x86_64-minimal
6.5 安装前准备(权限 / 目录配置)
# 移动安装目录到/usr/local(通用安装路径)
[root@server /]# mv mysql-8.0.33-linux-glibc2.17-x86_64-minimal /usr/local/mysql
# 切换到MySQL安装目录
[root@server /]# cd /usr/local/mysql
# 创建mysql用户组(系统级)
[root@server mysql]# groupadd mysql
# 创建mysql系统用户(禁止登录,仅用于运行服务)
[root@server mysql]# useradd -r -g mysql -s /bin/false mysql
# 参数说明:
# -r:创建系统用户(UID<1000)
# -g:指定所属用户组
# -s /bin/false:禁止用户登录系统
# 创建数据存储目录(用于备份/文件存储)
[root@server mysql]# mkdir mysql-files
# 设置目录所有者和所属组(仅mysql用户/组可访问)
[root@server mysql]# chown mysql:mysql mysql-files
# 设置目录权限(750:所有者读/写/执行,组只读/执行,其他无权限)
[root@server mysql]# chmod 750 mysql-files
6.6 初始化与临时启动
步骤 1:初始化 MySQL(生成临时密码)
# 初始化(指定运行用户为mysql,生成临时密码)
[root@server mysql]# bin/mysqld –initialize –user=mysql
# 注意:执行后会输出临时密码,需复制保存(示例:&987kLpoi876!)
步骤 2:配置 SSL(安全通信)
# 生成SSL/RSA证书(用于加密客户端与服务端通信)
[root@server mysql]# bin/mysql_ssl_rsa_setup
步骤 3:后台启动 MySQL
# 后台启动mysqld(&表示后台运行)
[root@server mysql]# bin/mysqld_safe –user=mysql &
步骤 4:验证进程(新开终端)
# 查看MySQL进程(确认启动成功)
[root@server ~]# ps -ef | grep mysql
# 示例输出:mysql 12345 1 0 10:00 ? 00:00:01 bin/mysqld –user=mysql…
步骤 5:解决库文件依赖(常见问题)
若登录时提示「libncurses.so.5」/「libtinfo.so.5」缺失,执行以下命令:
# 创建软链接(兼容低版本库依赖)
[root@server ~]# ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5
[root@server ~]# ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
步骤 6:登录并修改密码
# 切换到MySQL安装目录
[root@server ~]# cd /usr/local/mysql
# 登录MySQL(输入临时密码)
[root@server mysql]# bin/mysql -u root -p
Enter password: # 粘贴初始化时的临时密码
# 修改root密码(指定认证插件为mysql_native_password,兼容旧客户端)
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '123456';
# 刷新权限(使密码修改生效)
mysql> flush privileges;
# 退出MySQL
mysql> exit
# 可选:关闭临时启动的MySQL进程(后续配置启动脚本后重新启动)
[root@server ~]# ps -ef | grep mysql # 找到进程PID
[root@server ~]# kill -9 <PID> # 替换为实际PID
6.7 配置 my.cnf(核心配置文件)
步骤 1:创建并编辑配置文件
[root@server ~]# vim /etc/my.cnf
步骤 2:写入配置内容
# 客户端配置段(所有MySQL客户端生效)
[client]
port = 3306 # 连接端口
socket = /tmp/mysql.sock # 本地套接字文件(比TCP快)
# 服务端配置段(mysqld进程生效)
[mysqld]
# 基础标识
server-id = 1 # 服务唯一ID(集群环境需唯一)
port = 3306 # 监听端口
basedir = /usr/local/mysql # MySQL安装根目录
datadir = /usr/local/mysql/data # 数据文件存储目录(自动创建)
tmpdir = /tmp # 临时文件目录(如导入数据时使用)
socket = /tmp/mysql.sock # 套接字文件路径(与客户端一致)
# 字符集配置(支持emoji等特殊字符)
character-set-server = utf8mb4 # 服务端默认字符集
collation-server = utf8mb4_general_ci # 字符集排序规则
init_connect='SET NAMES utf8mb4' # 强制客户端连接时使用utf8mb4
# 存储引擎
default-storage-engine=INNODB # 默认存储引擎(事务安全、行级锁)
# 日志配置
log_error = error.log # 错误日志文件(存储在datadir下)
6.8 配置启动脚本(系统服务化)
步骤 1:拷贝并修改启动脚本
# 切换到脚本目录
[root@server ~]# cd /usr/local/mysql/support-files
# 拷贝启动脚本到系统服务目录
[root@server support-files]# cp -a mysql.server /etc/init.d/mysql.server
# 编辑启动脚本,指定安装目录和数据目录
[root@server support-files]# vim /etc/init.d/mysql.server
# 在脚本开头添加以下两行(指定basedir和datadir)
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
步骤 2:重载服务并启动
# 重载系统服务配置(使新脚本生效)
[root@server ~]# systemctl daemon-reload
# 启动mysql服务(通过系统服务)
[root@server ~]# systemctl start mysql
# 可选:设置开机自启
[root@server ~]# systemctl enable mysql
步骤 3:配置全局环境变量
# 编辑用户环境变量文件
[root@server ~]# vim ~/.bash_profile
# 添加MySQL二进制目录到PATH
export PATH=$PATH:/usr/local/mysql/bin
# 使环境变量生效
[root@server ~]# source ~/.bash_profile
# 验证(任意目录可执行mysql命令)
[root@server ~]# mysql -uroot -p
Enter password: 123456 # 输入密码即可登录
网硕互联帮助中心




评论前必须登录!
注册