《CentOS 5.6下源码安装MySQL 5.1.56》
在Linux系统中,源码编译安装软件是掌握系统底层原理的重要技能。MySQL作为最流行的开源关系型数据库之一,其5.1.56版本在CentOS 5.6环境下通过源码安装,既能满足特定版本需求,又能深入理解数据库的构建过程。本文将详细阐述从环境准备到最终验证的全流程操作,特别适合需要定制化部署或学习数据库底层实现的运维人员。
一、环境准备与依赖安装
CentOS 5.6默认的GCC版本为4.1.2,MySQL 5.1.56编译需要CMake 2.6+和NCurses开发库。首先通过yum安装基础依赖:
yum install -y gcc gcc-c++ make cmake bison ncurses-devel openssl-devel
若系统未预装CMake,需手动下载并编译安装:
wget https://github.com/Kitware/CMake/releases/download/v2.8.12/cmake-2.8.12.tar.gz
tar zxvf cmake-2.8.12.tar.gz
cd cmake-2.8.12
./bootstrap --prefix=/usr/local
make && make install
验证安装结果:
cmake --version
输出应显示版本号2.8.12,表明环境准备完成。
二、MySQL源码获取与解压
从MySQL官方仓库获取5.1.56版本源码包:
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.1.56.tar.gz
tar zxvf mysql-5.1.56.tar.gz
cd mysql-5.1.56
检查源码目录结构,重点关注以下关键目录:
- sql:核心数据库引擎代码
- include:头文件集合
- scripts:初始化脚本
- cmake:构建配置文件
三、编译参数配置
创建专用构建目录(out-of-source编译):
mkdir build
cd build
执行CMake配置,关键参数说明:
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_TCP_PORT=3306
参数详解:
- 安装路径:/usr/local/mysql
- 数据目录:/data/mysql(需提前创建)
- 存储引擎:启用InnoDB、Partition、Blackhole
- 字符集:统一设置为UTF-8
若出现依赖缺失错误,可通过cmake-gui
交互式界面调整配置。
四、编译与安装过程
执行编译命令,建议使用多核加速:
make -j$(nproc) && make install
编译时间取决于服务器配置,在4核8G机器上约需15-20分钟。安装完成后,检查目录结构:
ls /usr/local/mysql
应包含bin、include、lib、share等标准目录。
五、初始化数据库
创建MySQL用户和组:
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
修改数据目录权限:
chown -R mysql:mysql /data/mysql
执行初始化脚本(5.1.56使用mysql_install_db):
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/data/mysql
成功输出应包含"Installing MySQL system tables..."提示。
六、服务配置与启动
复制服务脚本到init.d目录:
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
创建配置文件my.cnf:
cat > /etc/my.cnf
启动MySQL服务:
service mysqld start
检查进程状态:
ps aux | grep mysql
应看到mysqld进程正在运行。
七、安全设置与初始登录
执行安全脚本:
/usr/local/mysql/bin/mysql_secure_installation
按提示完成以下操作:
- 设置root密码
- 移除匿名用户
- 禁止root远程登录
- 移除测试数据库
- 刷新权限表
测试登录:
/usr/local/mysql/bin/mysql -uroot -p
输入密码后应进入MySQL命令行界面。
八、环境变量配置
将MySQL命令加入PATH:
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
验证命令可用性:
mysql --version
应显示MySQL版本信息。
九、常见问题处理
问题1:编译时出现"undefined reference to `pthread_create'"
解决方案:在CMake命令中添加链接参数:
-DCMAKE_EXE_LINKER_FLAGS="-lpthread"
问题2:启动时报错"Can't find messagefile '/usr/share/mysql/errmsg.sys'"
解决方案:创建符号链接:
ln -s /usr/local/mysql/share/mysql /usr/share/mysql
问题3:初始化后数据目录为空
解决方案:检查mysql用户权限,重新执行初始化命令时添加--force参数。
十、性能优化建议
1. 内存配置:在my.cnf中添加
innodb_buffer_pool_size = 512M
key_buffer_size = 256M
2. 连接数调整:
max_connections = 200
3. 日志配置:
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 2
十一、升级与备份策略
1. 逻辑备份:
mysqldump -uroot -p --all-databases > full_backup.sql
2. 物理备份(需停机):
service mysqld stop
cp -r /data/mysql /backup/mysql_backup_$(date +%Y%m%d)
service mysqld start
3. 升级路径:建议先在测试环境升级到5.1.73(最终安全版本),再考虑向5.5/5.6迁移。
关键词:CentOS 5.6、MySQL 5.1.56、源码编译、CMake配置、数据库初始化、存储引擎、性能优化
简介:本文详细记录了在CentOS 5.6系统下通过源码编译安装MySQL 5.1.56数据库的全过程,涵盖环境准备、编译配置、服务部署、安全设置等关键步骤,并提供了常见问题解决方案和性能优化建议,适合需要定制化部署MySQL的运维人员参考。