MySQL源码编译安装全攻略

mysql 源码 编译安装

时间:2025-07-13 08:51


MySQL源码编译安装:全面指南与实践 在当今的数据驱动时代,MySQL作为一款开源的关系型数据库管理系统,以其高性能、可靠性和易用性,成为了众多企业和开发者的首选

    尽管通过包管理器(如YUM或APT)安装MySQL能够带来便捷,但源码编译安装提供了更高的灵活性和可定制性,允许用户根据具体需求调整配置参数,优化性能

    本文将详细介绍如何在Linux环境下,特别是CentOS7系统上,进行MySQL源码的编译安装

     一、准备工作 1. 环境要求 在进行MySQL源码编译安装之前,确保你的系统满足以下基本要求: -操作系统:CentOS 7.6 64位 -运行内存:至少8GB -磁盘存储:至少200GB -处理器:2个处理器,每个处理器至少2核 2. 用户与目录创建 首先,创建一个专门用于运行MySQL的用户和组,以及必要的安装和数据目录: bash 创建用户 useradd -s /sbin/nologin mysql 创建安装目录并进入 mkdir -p /usr/local/mysql cd /usr/local/mysql 创建数据存放目录 mkdir data 3. 安装依赖库 MySQL的编译依赖于一系列开发工具和库,包括gcc、g++、cmake、ncurses等

    使用YUM包管理器安装这些依赖: bash yum -y install initscripts wget libaio ncurses ncurses-devel bison gcc gcc-c++ openssl openssl-devel make cmake 4. 升级GCC和G++ 为了确保编译过程的顺利进行,建议升级GCC和G++到较新版本

    这里以GCC7为例: bash yum install -y centos-release-scl-rh centos-release-scl yum install devtoolset-7-gcc.x86_64 devtoolset-7-gcc-c++.x86_64 scl enable devtoolset-7 bash 验证安装 gcc --version g++ --version 为了防止升级后的编译器失效,可以通过修改软链接或环境变量的方式确保系统默认使用新版本

     5. 下载并安装CMake 虽然YUM已经安装了cmake,但为了确保使用最新版本,可以手动下载并编译安装: bash cd /opt wget https://github.com/Kitware/CMake/releases/download/v3.20.2/cmake-3.20.2.tar.gz tar zxvf cmake-3.20.2.tar.gz cd cmake-3.20.2 ./bootstrap gmake gmake install ln -s /opt/bin/cmake /usr/bin/cmake 二、下载与解压MySQL源码 访问MySQL官方下载页面,获取最新或指定版本的源码包

    以MySQL5.7.37为例: bash cd /usr/local/mysql wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.37.tar.gz tar -zxvf mysql-boost-5.7.37.tar.gz 解压后,你将得到包含MySQL源码和Boost库的目录

    Boost库是MySQL编译过程中必需的第三方库

     三、编译与安装 1. 运行CMake 在编译之前,使用CMake生成必要的编译文件

    通过指定各种参数来定制MySQL的安装: bash cd mysql-5.7.37 cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost . 这里,`-DWITH_BOOST=boost`指定了Boost库的路径(由于我们下载的是包含Boost的源码包,因此直接指定为`boost`即可)

    其他参数如字符集和校对规则也可以根据需要进行调整

     2. 编译与安装 使用`make`命令进行编译,然后使用`make install`进行安装: bash make && make install 编译过程可能会花费一些时间,具体取决于你的硬件配置和选择的编译选项

     四、配置与启动 1. 修改配置文件 MySQL的配置文件通常位于`/etc/my.cnf`

    打开该文件,并根据需要进行修改: bash vim /etc/my.cnf 添加或修改以下内容: ini 【client】 port =3306 socket = /tmp/mysql.sock 【mysqld】 user = mysql basedir = /usr/local/mysql datadir = /usr/local/mysql/data port =3306 pid-file = /usr/local/mysql/data/mysql.pid socket = /tmp/mysql.sock log_error = /usr/local/mysql/data/mysql-error.log slow_query_log =1 long_query_time =1 slow_query_log_file = /usr/local/mysql/data/mysql-slow.log 2. 设置目录权限 确保MySQL用户和组对数据目录拥有适当的权限: bash chown -R mysql:mysql /usr/local/mysql /usr/local/mysql/data 3. 初始化数据目录 在启动MySQL服务之前,需要初始化数据目录: bash cd /usr/local/mysql/bin ./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 注意,这里使用了`--initialize-insecure`选项,这意味着root用户将没有密码

    在生产环境中,应在初始化后立即设置密码

     4. 复制启动脚本 为了方便管理MySQL服务,可以将MySQL提供的启动脚本复制到系统的`/etc/init.d/`目录下: bash cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 5. 配置环境变量 为了使MySQL命令能够在系统任何位置执行,需要将其添加到PATH环境变量中: bash vim /etc/profile 添加以下内容: bash export MYSQL_HOME=/usr/local/mysql export PATH=${MYSQL_HOME}/bin:${PATH} 然后使环境变量生效: bash source /etc/profile 6. 启动MySQL服务 现在,你可以启动MySQL服务并检查其状态: bash service mysql start systemctl status mysql 7. 设置root密码 登录到MySQL命令行界面,并为root用户设置密码: bash mysql -u root mysql> ALTER USER root@localhost IDENTIFIED BY new_password; 8. 验证安装 最后,使用MySQL客户端连接到MySQL服务器,验证安装是否成功: bash mysql -u root -p 输入刚才设置的root密码,如果能够成功登录,则说明MySQL源码编译安装成功

     五、总结 通过源码编译安装MySQL,虽然过程相对复杂,但提供了高度的灵活性和可定制性

    本文详细介绍了从环境准备到编译安装、配置启动的完整流程,旨在帮助读者在Linux系统上成功部署MySQL

    在实际操作中,可能会遇到各种问题,如依赖包缺失、编译错误等,建议参考MySQL官方文档和社区资源,以获得更详细的解决方案