Linux研学-MySQL安装
一 MySQL5.7
1 配置远程仓库
yum所链接的远程仓库中,没有MySQL5.7的版本,故需要配置额外的远程仓库。
# 导入密钥
# 主要目的是验证软件包的完整性和来源的合法性,防止恶意软件或篡改的包被安装到系统中
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 通过 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版本
yum -y install mysql-community-server
3 启动
MySQL安装完成后,会自动配置名为mysqld
的服务,可以被systemctl所管理
# 启动 MySQL 服务
systemctl start mysqld# 配置 MySQL 开机自启动
systemctl enable mysqld# 验证 MySQL 服务状态
systemctl status mysqld
# 正常运行的输出示例
systemctl status mysqld
● mysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; preset: disabled)Active: active (running) since Mon 2025-07-14 13:46:04 CST; 13s agoInvocation: 85b12a79c5e44efd975ce199f296e83dDocs: 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,初始密码可在日志文件中查询到
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 登录
获得密码后,通过以下命令进行登录
mysql -uroot -p
6 修改初始密码
密码默认策略:长度 ≥ 8 位。;包含大小写字母、数字和特殊字符(如 !, @, #);不能是常见简单密码(如 123456, password)
# 编写密码于单引号内
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPassword123!';
可配置简单密码(测试/学习环境)
# 修改策略为 LOW(允许简单密码)
SET GLOBAL validate_password_policy = LOW;
# 最小长度设为 4
SET GLOBAL validate_password_length = 4;
7 配置远程登陆
设置可登录的IP和远程登录的密码,%表示都可以登录,最后刷新权限
# ALL PRIVILEGES:拥有所有操作权限(增删改查、创建/删除数据库、用户管理等)。
# *.*:作用于所有数据库和表。
# 'root'@'%':允许从任何主机(%)以 root 身份连接。
# WITH GRANT OPTION:允许该用户将自己的权限授予其他用户。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
# 刷新权限
FLUSH PRIVILEGES;
# 查看权限
SHOW GRANTS FOR 'root'@'%';
8 检查端口
退出mysql,检查 mysql 默认绑定的 3306 端口
netstat -anp | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 4629/mysqld
二 MySQL8.0
1 配置远程仓库
# 导入密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 添加 MySQL 8.x YUM 仓库
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
2 安装8.0版本
yum -y install mysql-community-server
3 启动
# 启动 MySQL 服务
systemctl start mysqld# 配置 MySQL 开机自启动
systemctl enable mysqld# 验证 MySQL 服务状态
systemctl status mysqld
4 获取初始密码
grep 'temporary password' /var/log/mysqld.log
5 登录
mysql -uroot -p
6 修改初始密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
配置简单密码(测试/学习环境)
# 修改策略为 LOW(允许简单密码)0=LOW, 1=MEDIUM, 2=STRONG
SET GLOBAL validate_password.policy = 0;
# 最小长度设为 4
SET GLOBAL validate_password.length = 4;
7 远程登录
# 创建 root 远程登录用户(首次设置)
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '强密码';
# 后续修改密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';
8 检查端口 – 3306
netstat -anp | grep 3306