Linux研学-MySQL安装

一 MySQL5.7

1 配置远程仓库

yum所链接的远程仓库中,没有MySQL5.7的版本,故需要配置额外的远程仓库。

bash 复制代码
# 导入密钥
# 主要目的是验证软件包的完整性和来源的合法性,防止恶意软件或篡改的包被安装到系统中
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
bash 复制代码
# 通过 RPM 包管理器下载并安装一个包含 MySQL 5.7 仓库元数据的 RPM 包
# -Uvh:是 rpm 命令的选项组合,具体含义如下:
# -U(或 --upgrade):表示升级或安装软件包。如果软件包已安装,则升级到最新版本;如果未安装,则直接安装。
# -v(或 --verbose):表示详细模式,会在安装过程中显示更多信息,便于用户了解安装进度。
# -h(或 --hash):表示显示散列进度条,由一系列 # 符号组成,直观展示安装进度。
#http://repo.mysql.com/mysql57-community-release-el7-7.noarch.rpm:是 MySQL 官方提供的 RPM 包下载地址,该包包含指向 MySQL 5.7 仓库的元数据(如仓库地址、GPG 密钥等)。
rpm -Uvh http://repo.mysql.com/mysql57-community-release-el7-7.noarch.rpm

2 安装5.7版本

bash 复制代码
yum -y install mysql-community-server

3 启动

MySQL安装完成后,会自动配置名为mysqld的服务,可以被systemctl所管理

bash 复制代码
#  启动 MySQL 服务
systemctl start mysqld

# 配置 MySQL 开机自启动
systemctl enable mysqld

# 验证 MySQL 服务状态
systemctl status mysqld
bash 复制代码
# 正常运行的输出示例
systemctl status mysqld
● mysqld.service - MySQL Server
     Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; preset: disabled)
     Active: active (running) since Mon 2025-07-14 13:46:04 CST; 13s ago
 Invocation: 85b12a79c5e44efd975ce199f296e83d
       Docs: man:mysqld(8)
             http://dev.mysql.com/doc/refman/en/using-systemd.html
# Loaded: enabled → 已配置开机自启。
# Active: active (running) → 服务正在运行。
# 如果显示 inactive (dead),说明服务未启动,需重新执行 systemctl start mysqld。

4 获取初始密码(临时)

初始用户名为root,初始密码可在日志文件中查询到

bash 复制代码
cat /var/log/mysqld.log | grep "temporary password"

# abX;<Cs4<B7g 密码
2025-07-14T05:46:00.230632Z 1 [Note] A temporary password is generated for root@localhost: abX;<Cs4<B7g

5 登录

获得密码后,通过以下命令进行登录

bash 复制代码
mysql -uroot -p

6 修改初始密码

密码默认策略:长度 ≥ 8 位。;包含大小写字母、数字和特殊字符(如 !, @, #);不能是常见简单密码(如 123456, password)

bash 复制代码
# 编写密码于单引号内
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPassword123!';

可配置简单密码(测试/学习环境)

bash 复制代码
# 修改策略为 LOW(允许简单密码)
SET GLOBAL validate_password_policy = LOW;
# 最小长度设为 4
SET GLOBAL validate_password_length = 4;

7 配置远程登陆

设置可登录的IP和远程登录的密码,%表示都可以登录,最后刷新权限

bash 复制代码
# ALL PRIVILEGES:拥有所有操作权限(增删改查、创建/删除数据库、用户管理等)。
# *.*:作用于所有数据库和表。
# 'root'@'%':允许从任何主机(%)以 root 身份连接。
# WITH GRANT OPTION:允许该用户将自己的权限授予其他用户。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
bash 复制代码
# 刷新权限
FLUSH PRIVILEGES;
bash 复制代码
# 查看权限
SHOW GRANTS FOR 'root'@'%';

8 检查端口

退出mysql,检查 mysql 默认绑定的 3306 端口

bash 复制代码
netstat -anp | grep 3306
tcp6    0    0 :::3306       :::*     LISTEN    4629/mysqld

二 MySQL8.0

1 配置远程仓库

bash 复制代码
# 导入密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
bash 复制代码
# 添加 MySQL 8.x YUM 仓库
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm

2 安装8.0版本

bash 复制代码
yum -y install mysql-community-server

3 启动

bash 复制代码
#  启动 MySQL 服务
systemctl start mysqld

# 配置 MySQL 开机自启动
systemctl enable mysqld

# 验证 MySQL 服务状态
systemctl status mysqld

4 获取初始密码

bash 复制代码
grep 'temporary password' /var/log/mysqld.log

5 登录

bash 复制代码
mysql -uroot -p

6 修改初始密码

bash 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';

配置简单密码(测试/学习环境)

bash 复制代码
# 修改策略为 LOW(允许简单密码)0=LOW, 1=MEDIUM, 2=STRONG
SET GLOBAL validate_password.policy = 0;
# 最小长度设为 4
SET GLOBAL validate_password.length = 4;

7 远程登录

bash 复制代码
# 创建 root 远程登录用户(首次设置)
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '强密码';
# 后续修改密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';

8 检查端口 -- 3306

bash 复制代码
netstat -anp | grep 3306
相关推荐
嵩山小老虎5 小时前
Windows 10/11 安装 WSL2 并配置 VSCode 开发环境(C 语言 / Linux API 适用)
linux·windows·vscode
Fleshy数模6 小时前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
a41324476 小时前
ubuntu 25 安装vllm
linux·服务器·ubuntu·vllm
az44yao6 小时前
mysql 创建事件 每天17点执行一个存储过程
mysql
一只自律的鸡7 小时前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug
17(无规则自律)8 小时前
【CSAPP 读书笔记】第二章:信息的表示和处理
linux·嵌入式硬件·考研·高考
!chen8 小时前
linux服务器静默安装Oracle26ai
linux·运维·服务器
秦老师Q8 小时前
php入门教程(超详细,一篇就够了!!!)
开发语言·mysql·php·db
REDcker8 小时前
Linux 文件描述符与 Socket 选项操作详解
linux·运维·网络
蒹葭玉树8 小时前
【C++上岸】C++常见面试题目--操作系统篇(第二十八期)
linux·c++·面试