在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置服务等,并与使用 RPM 包安装进行了对比,帮助读者根据需求选择合适的方法。编译源码安装虽然复杂,但提供了更高的定制性和灵活性。

随着业务的不断发展,对数据库的需求也越来越高。在 Linux 环境下,尤其是 CentOS 7 中,通过编译源码方式安装 MySQL 数据库是一种常见的做法。这种方法虽然相对复杂,但它能够提供更高的定制性和灵活性。本文将通过一个具体的案例来介绍如何在 CentOS 7 中通过编译源码的方式安装 MySQL 数据库,并与使用 RPM 包安装进行比较,以便读者能够根据自己的需求选择最合适的方法。

准备工作

首先,确保你的 CentOS 7 系统已更新到最新状态,并安装了必要的编译工具。可以使用以下命令进行更新和安装工具:

sudo yum update -y
sudo yum install -y gcc-c++ cmake make

下载 MySQL 源码

接下来,需要从 MySQL 官方网站下载 MySQL 的源代码包。假设我们要安装 MySQL 8.0.29,可以使用如下命令:

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.29.tar.gz
tar -xzvf mysql-8.0.29.tar.gz
cd mysql-8.0.29

编译安装 MySQL

配置编译参数

在编译 MySQL 之前,需要配置编译参数。这一步非常重要,因为它决定了 MySQL 的功能和性能。

cmake \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DDEFAULT_CHARSET=utf8mb4 \
    -DDEFAULT_COLLATION=utf8mb4_unicode_ci \
    -DWITH_EXTRA_CHARSETS=all \
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
    -DWITH_READLINE=1 \
    -DWITH_ZLIB=system \
    -DWITH_LIBWRAP=0 \
    -DWITH_DEBUG=0 \
    -DENABLED_LOCAL_INFILE=1 \
    -DWITH_SSL=system \
    -DWITH_EMBEDDED_SERVER=1 \
    -DWITH_PLUGIN_DIR="/usr/local/mysql/lib/plugin" \
    .

编译和安装

配置完成后,可以开始编译和安装 MySQL。

make -j $(nproc)
sudo make install

配置 MySQL

创建 MySQL 用户和组

sudo groupadd mysql
sudo useradd -r -g mysql mysql

初始化 MySQL 数据库

sudo chown -R mysql:mysql /usr/local/mysql
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql

启动 MySQL 服务

sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &

创建 MySQL 服务

为了让 MySQL 服务在系统启动时自动启动,需要创建一个 systemd 服务文件。

sudo cat > /etc/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
After=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld_safe
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

然后启用并启动 MySQL 服务:

sudo systemctl enable mysqld
sudo systemctl start mysqld

登录 MySQL

登录 MySQL 服务器并设置 root 密码:

sudo /usr/local/mysql/bin/mysql -u root

设置 root 密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
EXIT;

与 RPM 包安装的比较

通过编译源码安装 MySQL 与使用 RPM 包安装相比,有以下区别:

  • 灵活性: 编译源码可以让你根据需要选择不同的编译选项,从而获得更符合需求的功能和性能。
  • 兼容性: 编译源码时可以确保 MySQL 与现有系统环境的兼容性。
  • 复杂性: 编译源码安装相对复杂,需要更多的时间和专业知识。
  • 维护: 使用 RPM 包安装的 MySQL 更容易维护和更新,因为可以通过包管理器轻松升级。
  • 社区支持: RPM 包安装通常会有更好的社区支持,包括文档和问题解决。

实践心得

在实际操作过程中,我们需要注意以下几点:

  • 备份: 在进行任何重大操作前,确保备份重要的数据。
  • 版本选择: 选择适合你业务需求的 MySQL 版本。
  • 安全性: 确保设置强密码并限制 root 用户的远程访问。
  • 性能调优: 根据实际负载情况调整 MySQL 的配置文件。

通过上述步骤,我们成功地在 CentOS 7 中通过编译源码的方式安装了 MySQL 数据库。尽管这种方法相对复杂,但它能够提供更高的定制性和灵活性。对于需要高度定制化安装的场景,编译源码安装无疑是一个很好的选择。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
关系型数据库 MySQL Linux
CentOS系统安装phpStudy的详细步骤和注意事项
一、安装流程 执行官方安装脚本 通过以下命令直接安装官方集成环境(支持CentOS 7及以上版本): ``` yum install -y wget && wget -O install.sh https://www.hsbang.com/ install.sh && sh install.sh ``` 安装过程包含自动下载组件和配置环境,需等待2-5分钟。
167 4
|
3月前
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
975 26
|
6月前
|
安全 关系型数据库 MySQL
CentOS7仅安装部署MySQL80客户端
通过上述步骤,你可以在CentOS 7上成功安装并配置MySQL 8.0客户端。这个过程确保你能够使用MySQL客户端工具连接和管理远程的MySQL数据库,而不需要在本地安装MySQL服务器。定期更新MySQL客户端可以确保你使用的是最新的功能和安全修复。
670 16
|
8月前
|
存储 监控 Linux
在 CentOS 7 中进行磁盘分区和挂载的具体操作步骤,如何使用 `fdisk` 创建分区、格式化分区、创建挂载点以及临时和永久挂载分区的方法。
本文介绍了在 CentOS 7 中进行磁盘分区和挂载的具体操作步骤。通过一个实际案例,详细说明了如何使用 `fdisk` 创建分区、格式化分区、创建挂载点以及临时和永久挂载分区的方法。此外,还分享了一些实践经验,帮助读者更好地管理和优化服务器磁盘空间。
1511 4
|
29天前
|
人工智能 运维 关系型数据库
数据库运维:mysql 数据库迁移方法-mysqldump
本文介绍了MySQL数据库迁移的方法与技巧,重点探讨了数据量大小对迁移方式的影响。对于10GB以下的小型数据库,推荐使用mysqldump进行逻辑导出和source导入;10GB以上可考虑mydumper与myloader工具;100GB以上则建议物理迁移。文中还提供了统计数据库及表空间大小的SQL语句,并讲解了如何使用mysqldump导出存储过程、函数和数据结构。通过结合实际应用场景选择合适的工具与方法,可实现高效的数据迁移。
234 1
|
2月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
3天前
|
SQL 存储 关系型数据库
MySQL功能模块探秘:数据库世界的奇妙之旅
]带你轻松愉快地探索MySQL 8.4.5的核心功能模块,从SQL引擎到存储引擎,从复制机制到插件系统,让你在欢声笑语中掌握数据库的精髓!
49 26
|
24天前
|
SQL 关系型数据库 MySQL
Go语言数据库编程:使用 `database/sql` 与 MySQL/PostgreSQL
Go语言通过`database/sql`标准库提供统一数据库操作接口,支持MySQL、PostgreSQL等多种数据库。本文介绍了驱动安装、连接数据库、基本增删改查操作、预处理语句、事务处理及错误管理等内容,涵盖实际开发中常用的技巧与注意事项,适合快速掌握Go语言数据库编程基础。
110 62
|
4月前
|
关系型数据库 MySQL Java
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
|
2月前
|
存储 关系型数据库 MySQL
大数据新视界 --面向数据分析师的大数据大厂之 MySQL 基础秘籍:轻松创建数据库与表,踏入大数据殿堂
本文详细介绍了在 MySQL 中创建数据库和表的方法。包括安装 MySQL、用命令行和图形化工具创建数据库、选择数据库、创建表(含数据类型介绍与选择建议、案例分析、最佳实践与注意事项)以及查看数据库和表的内容。文章专业、严谨且具可操作性,对数据管理有实际帮助。
大数据新视界 --面向数据分析师的大数据大厂之 MySQL 基础秘籍:轻松创建数据库与表,踏入大数据殿堂