环境准备与依赖安装
在Linux服务器上通过源码编译安装MySQL 5.6,首要任务是搭建完整的编译环境。建议使用CentOS 7或Ubuntu 18.04等稳定版本,避免使用过旧的发行版导致底层库不兼容。登录服务器后先执行系统包更新,随后集中安装编译所需的基础工具和依赖库。对于RHEL系系统,直接运行yum install cmake gcc gcc-c++ ncurses-devel bison perl-Data-Dumper zlib-devel -y即可完成安装。Debian系系统则替换为apt-get install build-essential cmake libncurses5-dev libssl-dev libz-dev。安装过程中务必保证网络稳定,若有提示缺少特定模块,按错误日志补充对应开发包即可。编译阶段对内存要求较高,建议分配至少2GB内存,否则可能在make阶段触发OOM中断。
下载源码并创建运行账户
前往MySQL官方归档站点或镜像源,定位到5.6.x系列版本,下载带有tar.gz后缀的源码压缩包。使用wget命令将文件拉取至服务器的工作目录,下载完成后执行tar -zxvf mysql-5.6.xx.tar.gz进行解压。解压后的目录包含完整的C/C++源代码及构建脚本。为了避免权限冲突和安全隐患,强烈建议在编译前新建专用运行账户。使用useradd -r -s /sbin/nologin mysql命令创建系统级用户,该用户仅用于启动和维护数据库进程,不赋予登录权限。后续所有安装路径、数据目录及运行时文件的归属权都将指向该账户,方便后期统一管控。
CMake参数配置详解
MySQL 5.6已彻底弃用传统configure脚本,全面采用CMake作为构建工具。进入解压后的源码根目录,执行cmake命令并完成参数设定是成败关键。推荐的标准配置如下:cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_TCP_PORT=3306 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci。其中安装路径和数据目录需结合服务器磁盘规划自行调整,字符集强制指定为utf8可有效规避中文乱码。配置完成后终端会显示检查报告,若出现红色报错,请对照提示补齐缺失的第三方库后再重试。
执行编译与安装部署
CMake生成Makefile后,即可启动编译流程。输入make命令开始构建,该步骤完全依赖CPU算力,多核服务器可追加-j参数提升速度,但生产环境建议不添加以免耗尽资源。编译时间通常在十到二十分钟之间,期间请勿中断会话。全部通过后,执行make install完成二进制分发,该指令会将程序文件、头文件和脚本整齐放入预设的安装目录。安装完毕后立即调整目录所有权,运行chown -R mysql:mysql /usr/local/mysql以及chown -R mysql:mysql /data/mysql。权限设置错误会导致服务启动失败或权限拒绝异常,务必在执行初始化前确认无误。
初始化与基础安全加固
源码安装的MySQL不会自动生成系统表,必须手动初始化元数据。切换至mysql用户,进入/usr/local/mysql/bin目录,执行./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql。该命令会在数据目录重建ibdata1、redo日志及mysql系统库。初始化成功后,将support-files下的my-default.cnf复制至etc/mysql并完善路径配置。使用service mysql start或systemctl启动数据库,验证进程存活后通过mysql -u root -p连接。因采用insecure模式,初始root密码为空,首次登录后立即执行ALTER USER语句重置密码,同时drop user ''@'localhost'删除匿名账号,移除test数据库,关闭远程root直连,完成最基础的安全隔离。至此源码编译安装流程全部结束,可直接投入业务测试。