随着业务的不断发展,对数据库的需求也越来越高。在 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 数据库。尽管这种方法相对复杂,但它能够提供更高的定制性和灵活性。对于需要高度定制化安装的场景,编译源码安装无疑是一个很好的选择。