
对于需要在 CentOS 上部署 MySQL 数据库的应用场景,通常有多种安装方法可供选择,如通过 YUM 包管理器安装、从官方 RPM 包安装,或者直接从源代码编译安装
然而,在某些特定情况下,例如当需要安装特定版本的 MySQL 或者需要定制安装选项时,从`.tar.gz`压缩包安装成为了一个灵活且有效的选择
本文将详细介绍如何在 CentOS 上从`.tar.gz`压缩包安装 MySQL,确保每一步都清晰明了,具备说服力
一、准备工作 1. 检查系统环境 首先,确保你的 CentOS 系统是最新的,因为较新的系统版本往往包含更多的安全补丁和性能改进
使用以下命令更新系统: bash sudo yum update -y 2. 安装必要的依赖 MySQL 的安装和运行依赖于一些基础库
在安装 MySQL 之前,先确保这些依赖库已经安装
特别是`libaio` 库,它是 MySQL InnoDB 存储引擎所必需的: bash sudo yum install -y libaio 3. 创建 MySQL 用户和组 出于安全考虑,建议为 MySQL创建一个专门的用户和组,以便限制其权限: bash sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql 二、下载和解压 MySQL`.tar.gz` 包 1. 下载 MySQL`.tar.gz` 包 访问 MySQL官方网站或其镜像站点,下载所需版本的 MySQL`.tar.gz`压缩包
例如,下载 MySQL8.0版本的压缩包: bash wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.xx-linux-glibc2.12-x86_64.tar.xz 注意:这里示例使用的是`.tar.xz` 格式,但处理流程类似`.tar.gz`,只是解压命令稍有不同
如果是`.tar.gz` 格式,则下载链接会稍有不同,且解压命令使用`tar -zxvf`
2. 解压 MySQL压缩包 将下载的压缩包解压到指定的目录,例如`/usr/local/`: bash sudo tar -xvf mysql-8.0.xx-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ 解压后,为了方便管理,可以将解压后的目录重命名为`mysql`(如果解压命令没有直接生成该名称): bash sudo mv /usr/local/mysql-8.0.xx-linux-glibc2.12-x86_64 /usr/local/mysql 三、配置 MySQL 1. 设置目录权限 确保 MySQL 用户对安装目录和数据目录拥有适当的权限: bash sudo chown -R mysql:mysql /usr/local/mysql sudo mkdir -p /usr/local/mysql/data sudo chown mysql:mysql /usr/local/mysql/data 2.初始化数据库 在 MySQL5.7 及更高版本中,初始化数据库使用`mysqld --initialize` 命令
执行此命令时,可以选择添加`--initialize-insecure` 参数来创建一个没有密码的 root 用户(不推荐用于生产环境),或者不加该参数以生成一个临时密码: bash sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql 注意记录初始化过程中生成的临时密码(如果未使用`--initialize-insecure`)
3. 配置 MySQL 服务 为了方便管理,可以创建一个 systemd 服务文件来启动和管理 MySQL 服务
创建一个名为`mysqld.service` 的文件在`/etc/systemd/system/`目录下: bash sudo nano /etc/systemd/system/mysqld.service 在文件中添加以下内容(根据你的 MySQL 安装路径进行调整): ini 【Unit】 Description=MySQL Server After=network.target After=syslog.target 【Service】 User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf PIDFile=/usr/local/mysql/data/mysqld.pid LimitNOFILE =5000 【Install】 WantedBy=multi-user.target 同时,创建或编辑 MySQL配置文件`/etc/my.cnf`,至少指定`basedir` 和`datadir`: ini 【mysqld】 basedir=/usr/local/mysql datadir=/usr/local/mysql/data 4. 启动 MySQL 服务 重新加载 systemd 配置,并启动 MySQL 服务: bash sudo systemctl daemon-reload sudo systemctl start mysqld 设置 MySQL 服务开机自启: bash sudo systemctl enable mysqld 四、安全配置和初始化 1. 获取并修改 root 密码 如果初始化时生成了临时密码,使用该密码登录 MySQL,并立即更改密码: bash /usr/local/mysql/bin/mysql -u root -p 在 MySQL 提示符下执行: sql ALTER USER root@localhost IDENTIFIED BY NewPassword; FLUSH PRIVILEGES; 2. 运行安全脚本 MySQL 提供了一个安全安装脚本`mysql_secure_installation`,用于执行一系列安全相关配置,如删除匿名用户、禁止 root远程登录、删除测试数据库等
虽然这个脚本通常与通过 YUM 或 RPM 安装的 MySQL一起使用,但你可以手动执行类似的安全配置步骤
五、后续管理和维护 1. 管理 MySQL 服务 使用 systemctl 命令管理 MySQL 服
JS直连MySQL:轻松实现客户端数据库交互这个标题紧扣关键词,同时简洁明了地表达了文
CentOS系统下MySQL快速安装指南:tar.gz包详解
MySQL5.7安全加固:保护数据库安全的必备指南
MySQL中分数为空值存储策略
MySQL教程:如何增加表中列
ES数据高效同步至MySQL,实现数据无缝迁移
掌握MySQL多表左连接技巧,高效实现数据跨表查询
JS直连MySQL:轻松实现客户端数据库交互这个标题紧扣关键词,同时简洁明了地表达了文
MySQL5.7安全加固:保护数据库安全的必备指南
MySQL中分数为空值存储策略
MySQL教程:如何增加表中列
ES数据高效同步至MySQL,实现数据无缝迁移
掌握MySQL多表左连接技巧,高效实现数据跨表查询
MySQL64位系统下数据库连接全攻略
MySQL全面支持生僻字,数据存储无障碍!
MySQL全等于:精准匹配数据技巧
精通MySQL手册函数,高效处理数据库操作
MySQL64与32位版本对比:性能差异揭秘
MySQL死锁探秘:产生原因与解决方案或者揭秘MySQL死锁:为何发生及应对策略(注:以上