CentOS 源码安装 MySQL
准备工作
1、更新系统和安装编译工具:

确保你的 CentOS 7 系统已更新到最新状态,并安装了必要的编译工具,可以使用以下命令进行更新和安装工具:
- sudo yum update y
- sudo yum install y gccc++ cmake make
2、下载 MySQL 源码:
从 MySQL 官方网站下载 MySQL 的源代码包,假设我们要安装 MySQL 8.0.29,可以使用如下命令:
- wget https://cdn.mysql.com//Downloads/MySQL8.0/mysql8.0.29.tar.gz
- tar xzvf mysql8.0.29.tar.gz
- cd mysql8.0.29
编译与安装
1、配置编译参数:
在编译 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" \
- .
2、编译和安装:

配置完成后,可以开始编译和安装 MySQL。
- make j $(nproc)
- sudo make install
配置 MySQL
1、创建 MySQL 用户和组:
- sudo groupadd mysql
- sudo useradd r g mysql mysql
2、初始化 MySQL 数据库:
- sudo chown R mysql:mysql /usr/local/mysql
- sudo /usr/local/mysql/bin/mysqld initialize user=mysql
3、启动 MySQL 服务:
- sudo /usr/local/mysql/bin/mysqld_safe user=mysql &
4、创建 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=multiuser.target
- EOF
然后启用并启动 MySQL 服务:
- sudo systemctl enable mysqld
- sudo systemctl start mysqld
5、登录 MySQL:
登录 MySQL 服务器并设置 root 密码:
- sudo /usr/local/mysql/bin/mysql u root
设置 root 密码:
- ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';
- FLUSH PRIVILEGES;
- EXIT;
与 RPM 包安装的比较
特性 | 源码编译安装 | rpm 包安装 |
灵活性 | 高,可以根据需求选择不同的编译选项 | 低,使用默认配置 |
兼容性 | 高,可确保与现有系统环境的兼容性 | 高,但依赖于官方提供的软件包 |
复杂性 | 高,需要更多的时间和专业知识 | 低,简单易用 |
维护 | 较复杂,需手动管理更新和补丁 | 简单,通过包管理器轻松升级和维护 |
社区支持 | 较低,文档和问题解决较少 | 较高,有丰富的社区资源和支持 |
实践心得与注意事项
1、备份数据:在进行任何重大操作前,确保备份重要的数据。
2、版本选择:选择适合你业务需求的 MySQL 版本。
3、安全性:确保设置强密码并限制 root 用户的远程访问。
4、性能调优:根据实际负载情况调整 MySQL 的配置文件。
常见问题解答(FAQs)
Q1: 为什么选择源码编译安装而不是 RPM 包安装?
A1: 源码编译安装提供了更高的定制性和灵活性,可以根据具体需求选择不同的编译选项,从而优化性能和功能,而 RPM 包安装通常使用默认配置,适用于快速部署和简单场景。
Q2: 源码编译安装过程中遇到编译错误怎么办?
A2: 如果遇到编译错误,首先检查错误信息,确认是否缺少依赖库或头文件,可以尝试安装缺失的依赖或调整编译参数,查阅官方文档和社区论坛也是解决问题的好方法。