【Linux】实验篇——Linux安装MySQL保姆教程(两种安装方式)

[复制链接]
发表于 2026-10-5 19:45:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

在很多 CentOS 7 的实际环境里,装 MySQL 会遇到两种截然不同的处境:服务器能连外网,直接 yum 拉包就行;服务器是内网离线机,只能靠提前下载好的 rpm 包手工装配。本文把两条路径都走一遍,包含启动服务、取初始密码、改密码、开远程访问、配字符编码,以及离线安装时的依赖顺序。

一、环境说明

  • 系统:CentOS Linux release 7.6.1810 (Core)
  • 数据库版本:MySQL 5.7
  • 方式一:服务器有外网,通过 yum 安装。
  • 方式二:服务器无外网,使用离线 rpm 包安装。

判断有没有外网,最简单的方式是 ping baidu.com;能通就走方式一,不通走方式二。

二、两法共用的前置动作:卸载 mariadb

mariadb 是 mysql 的分支,两者文件有重叠,同时装会冲突,所以装 mysql 之前必须先卸 mariadb。

rpm -qa | grep mariadb
rpm -e --nodeps 文件名

为什么必须卸?早年的 Linux 发行版大多内置 mysql,后来 Oracle 收购 Sun 之后,开源发行版不再集成 mysql。CentOS 7 已经不提供 mysql,转而内置了 mariadb。直接装 mysql 会和 mariadb 的文件撞车,所以这一步不能省。

三、方式一:通过 yum 在线安装

1. 确认当前是否有 mysql 残留

rpm -qa | grep mysql

2. 按系统版本找对应的 yum 源

官方源地址有两个:repo.mysql.com 与 dev.mysql.com/downloads/repo/yum/。注意源里的 el7 标识要和 CentOS 7 对应。

3. 下载并安装 rpm 包

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

如果报 -bash: wget: 未找到命令,先装 wget 再重跑:

yum -y install wget

4. 安装与安装服务端

用 yum 装这个 release 包时,yum 会自动补上环境变量和启动脚本;随后装服务端 community-server。

yum -y install mysql57-community-release-el7-11.noarch.rpm
yum install -y mysql-community-server

5. 启动并查看状态

systemctl start mysqld
systemctl status mysqld

6. 设置开机启动

systemctl enable mysqld
systemctl daemon-reload

7. 取出初始密码

grep "password" /var/log/mysqld.log

8. 登录并改密码

mysql -uroot -p

登录后执行(引号内换成自己的强密码):

alter user 'root'@'localhost' identified by 'Root@123456';
flush privileges;

9. 开远程登录与放端口

grant all privileges on *.* to root@'%' identified by "修改后的密码";

再配防火墙开 3306:

cd /etc/sysconfig/
vim iptables

在规则链里加一行:

-A INPUT -p tcp --dport 3306 -j ACCEPT

10. 配字符编码并重启

编辑 /etc/my.cnf,加入:

character_set_server=utf8
init_connect='SET NAMES utf8'

保存退出后重启服务:

systemctl restart mysqld

至此,yum 在线安装完成。

四、方式二:离线安装 MySQL

1. 检查与卸载依赖

同样是先看 mariadb 并卸掉:

rpm -qa | grep mariadb
rpm -e --nodeps 文件名

2. 准备离线包

在内网能上网的机器上,从官方渠道下载 mysql-5.7.44 的 bundle 压缩包,再把压缩包传到 CentOS 7 机器上。注意版本要和系统大版本匹配(这里是 el7)。

3. 确认系统已装 libaio

rpm -qa | grep libaio

多数 Linux 默认已装,除非被手工卸载过。

4. 解压 bundle

tar -xvf mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar

5. 按固定顺序装 rpm

顺序不能乱,依赖是串起来的:

  1. rpm -ivh mysql-community-common-5.7.44-1.el7.x86_64.rpm
  2. rpm -ivh mysql-community-libs-5.7.44-1.el7.x86_64.rpm
  3. rpm -ivh mysql-community-devel-5.7.44-1.el7.x86_64.rpm
  4. rpm -ivh mysql-community-libs-compat-5.7.44-1.el7.x86_64.rpm
  5. rpm -ivh mysql-community-client-5.7.44-1.el7.x86_64.rpm
  6. rpm -ivh mysql-community-server-5.7.44-1.el7.x86_64.rpm

装 server 包时容易报错,原因常是安装 Linux 时选了"最小安装",缺了一批服务端依赖。如果装的是自己搭的虚拟机,重装时把基本环境选成"基础设施服务器"可以避掉大部分问题。

6. 启动与自启

systemctl status mysqld
systemctl start mysqld
systemctl enable mysqld
systemctl daemon-reload

7. 取初始密码并登录

cat /var/log/mysqld.log | grep password
mysql -uroot -p

8. 改密码、改 host 并刷新

SET PASSWORD FOR 'root'@'localhost'="Root@123456";
update user set host='%' where user='root';
FLUSH PRIVILEGES;

9. 关防火墙后用客户端连通

systemctl stop firewalld.service

离线安装到此完成。生产环境建议保留防火墙规则、只放行可信来源,而不是直接停掉 firewalld。

五、两种方式怎么选

  • 能联网、版本要跟上游对齐:走 yum,省事且后续升级方便。
  • 内网环境、机房无出口:走离线 bundle,关键是先把 common、libs、devel、libs-compat、client、server 的顺序走对。
  • 两条路最后都要做同一件事:改 root 初始密码。初始密码只落在 /var/log/mysqld.log 里,没改之前远程连接是打不开的。

qidao123.com企服评测-应用市场 编辑提示

本文对比了 CentOS 7 下有外网与无外网两种 MySQL 5.7 安装路径,逐条给出卸载 mariadb、添加 yum 源、安装服务端、启动自启、取初始密码、改密码、放通 3306、配置 utf8 编码的完整步骤,并说明离线 bundle 中六个 rpm 的固定安装顺序。文中命令建议在测试环境先验证,线上操作前请备份数据库与配置文件;远程开放 root 账号等于把管理面暴露出去,实际部署应改用限定来源的专用账号,并保留防火墙策略。

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表