在Linux系统中使用yum包管理器安装MySQL是常见且便捷的方式,尤其适用于基于Red Hat Enterprise Linux(RHEL)、CentOS等发行版的系统,以下是详细的安装步骤、配置说明及注意事项,帮助用户顺利完成MySQL的安装与初始化配置。
安装前的准备工作
在开始安装MySQL之前,需确保系统满足以下基本条件:
- 系统版本支持:当前MySQL官方yum仓库支持RHEL/CentOS 7、8、9以及Oracle Linux、Rocky Linux等同源系统,可通过
cat /etc/redhat-release
命令查看系统版本。 - 网络连接:yum安装需要从官方仓库下载依赖包,确保服务器能访问外网或已配置本地yum源。
- root权限:安装软件及系统配置需要超级用户权限,建议使用
sudo -i
切换至root用户,或使用sudo
执行命令。 - 清理旧版本:若系统中已安装MySQL或MariaDB(MySQL的分支),需先卸载避免冲突,执行以下命令:
yum remove mariadb-server mariadb-client mysql-community-server mysql-community-client # 卸载可能存在的旧版本
添加MySQL官方Yum仓库
MySQL官方提供了稳定的yum仓库,需先下载并添加仓库配置文件,根据系统版本选择对应的rpm包:
- CentOS 7:
yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-10.noarch.rpm -y
- CentOS 8:
yum localinstall https://dev.mysql.com/get/mysql80-community-release-el8-10.noarch.rpm -y
- CentOS 9:
dnf install https://dev.mysql.com/get/mysql80-community-release-el9-5.noarch.rpm -y
添加仓库后,可通过以下命令验证仓库是否生效:
yum repolist enabled | grep ".*" | grep ".*.*"
若输出中包含MySQL 8.0 Community
等字样,说明仓库添加成功,若需切换MySQL版本(如从8.0降至5.7),可通过修改/etc/yum.repos.d/mysql-community-*.repo
文件中的enabled=0
或enabled=1
参数实现。
安装MySQL服务器
仓库添加成功后,即可使用yum安装MySQL核心组件,推荐安装以下包:
mysql-community-server
:MySQL服务器主程序mysql-community-client
:MySQL客户端工具mysql-community-common
:MySQL通用文件(如配置文件、头文件)mysql-community-libs
:MySQL依赖库
执行以下命令一键安装:
yum install mysql-community-server mysql-community-client mysql-community-common mysql-community-libs -y
安装过程中,yum会自动解决依赖关系并下载所需包,若提示“GPG密钥验证失败”,可执行以下命令导入MySQL官方GPG密钥(或使用--nogpgcheck
跳过验证,但不推荐):
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
启动MySQL服务并设置开机自启
安装完成后,需启动MySQL服务并配置开机自动启动,确保服务持久运行:
systemctl start mysqld # 启动MySQL服务 systemctl enable mysqld # 设置开机自启 systemctl status mysqld # 查看服务状态
若服务启动失败,可通过journalctl -u mysqld
查看错误日志,常见问题包括端口占用(默认3306)、配置文件语法错误等。
获取并修改root初始密码
MySQL 8.0安装后,会为root用户生成一个临时密码(仅限首次安装),需及时修改以提高安全性。
获取临时密码
临时密码存储在MySQL错误日志中,可通过以下命令提取:
grep 'temporary password' /var/log/mysqld.log
输出示例:A temporary password is generated for root@localhost: abc123!@#
,其中abc123!@#
即为临时密码。
登录MySQL并修改密码
使用临时密码登录MySQL:
mysql -u root -p
输入临时密码后,执行以下命令修改密码(密码需包含大小写字母、数字和特殊字符,且长度至少8位):
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!@#'; FLUSH PRIVILEGES;
运行安全配置向导
MySQL提供了mysql_secure_installation
脚本,用于快速完成安全配置,包括:
- 移除匿名用户
- 禁止root远程登录
- 删除测试数据库
- 重新加载权限表
执行以下命令启动向导:
mysql_secure_installation
根据提示操作,推荐选择以下配置:
- 设置密码复杂度策略:
y
(启用) - 移除匿名用户:
y
- 禁止root远程登录:
y
(若需远程管理,可后续手动配置) - 删除测试数据库:
y
- 重新加载权限表:
y
验证安装与基础配置
验证安装
登录MySQL后,执行以下命令查看版本信息:
SELECT VERSION();
或通过客户端工具(如Navicat、DBeaver)连接测试。
配置字符集与存储引擎
MySQL默认字符集为utf8mb4
(支持Emoji),存储引擎为InnoDB,若需修改配置,编辑/etc/my.cnf
文件:
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci default-storage-engine=InnoDB
保存后重启MySQL服务:
systemctl restart mysqld
开放防火墙端口(可选)
若服务器开启了防火墙(如firewalld),需允许3306端口访问:
firewall-cmd --permanent --add-port=3306/tcp firewall-cmd --reload
常见配置参数说明
参数 | 默认值 | 作用 |
---|---|---|
port |
3306 | MySQL服务监听端口 |
bind-address |
0.0.1 | 绑定IP地址,0.0.0 允许所有IP访问 |
max_connections |
151 | 最大连接数 |
innodb_buffer_pool_size |
128M | InnoDB缓冲池大小,建议设置为物理内存的50%-70% |
相关问答FAQs
问题1:安装MySQL时提示“No package mysql-community-server available”,如何解决?
解答:通常是由于未正确添加MySQL官方yum仓库或系统版本不兼容导致,可执行以下步骤排查:
- 检查系统版本是否支持(如CentOS 6已停止支持,无法安装MySQL 8.0);
- 重新添加官方yum仓库:
rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-7.noarch.rpm
; - 清除yum缓存:
yum clean all
,后重新尝试安装。
问题2:MySQL启动失败,日志显示“Can’t start server: can’t create PID file”怎么办?
解答:该错误通常是由于PID文件目录权限不足或文件冲突导致,可按以下步骤解决:
- 检查PID文件目录权限:
ls -l /var/run/mysqld/
,若无权限,执行chown -R mysql:mysql /var/run/mysqld/
; - 若目录不存在,创建并授权:
mkdir -p /var/run/mysqld && chown -R mysql:mysql /var/run/mysqld/
; - 检查是否有mysqld进程残留:
ps aux | grep mysqld
,若有则强制终止:kill -9 进程ID
,后重新启动服务。
通过以上步骤,即可完成Linux系统中MySQL的yum安装与基础配置,后续可根据业务需求调整性能参数、开启复制或集群功能,确保MySQL稳定运行。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/26683.html