CentOS 5 编译安装 MySQL 5.5.x 新版本
《CentOS 5 编译安装 MySQL 5.5.x 新版本》
在CentOS 5环境下编译安装MySQL 5.5.x版本是数据库管理员常见的需求之一。由于CentOS 5默认软件源提供的MySQL版本较旧,而MySQL 5.5.x引入了性能优化、半同步复制等重要特性,因此手动编译安装成为获取最新功能的必要途径。本文将详细阐述从环境准备到最终验证的全流程,帮助读者在CentOS 5上成功部署MySQL 5.5.x。
一、系统环境检查与准备
1.1 系统版本确认
cat /etc/redhat-release
确保输出显示CentOS release 5.x(如5.11),不同小版本可能存在依赖差异。
1.2 关闭SELinux
vi /etc/selinux/config
# 修改SELINUX=disabled
setenforce 0 # 临时生效
SELinux可能阻止MySQL正常启动,编译阶段也可能出现权限问题。
1.3 安装基础开发工具
yum install -y gcc gcc-c++ make cmake ncurses-devel openssl-devel bison
CMake是MySQL 5.5+的构建工具,需确保版本≥2.6。可通过cmake --version
验证。
二、下载与解压MySQL源码
2.1 获取源码包
从MySQL官方下载5.5.x版本源码(推荐5.5.62等稳定版本):
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.5.62.tar.gz
tar -zxvf mysql-5.5.62.tar.gz
cd mysql-5.5.62
2.2 创建用户与目录
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
mkdir -p /usr/local/mysql
mkdir -p /data/mysql # 数据目录
三、编译配置与参数优化
3.1 CMake参数详解
关键参数说明:
-
-DCMAKE_INSTALL_PREFIX
:指定安装目录 -
-DMYSQL_DATADIR
:数据文件存储路径 -
-DWITH_INNOBASE_STORAGE_ENGINE
:启用InnoDB -
-DENABLED_LOCAL_INFILE
:允许本地文件加载 -
-DWITH_DEBUG=0
:关闭调试模式
3.2 完整编译命令
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_DEBUG=0 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
3.3 编译与安装
make -j$(nproc) # 使用多核加速编译
make install
编译过程可能耗时30-60分钟,需确保系统内存充足(建议≥2GB)。
四、初始化与配置
4.1 修改目录权限
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data/mysql
4.2 生成初始数据库
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/data/mysql
4.3 配置my.cnf
编辑/etc/my.cnf
,示例配置:
[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
!includedir /etc/my.cnf.d
五、服务管理与启动
5.1 创建启动脚本
复制服务脚本到init.d目录:
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
5.2 启动服务
service mysqld start
检查状态:
ps aux | grep mysql
netstat -tulnp | grep 3306
5.3 设置环境变量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
六、安全加固与初始设置
6.1 运行安全脚本
mysql_secure_installation
按提示完成:
- 设置root密码
- 移除匿名用户
- 禁止root远程登录
- 移除测试数据库
- 刷新权限表
6.2 创建应用用户
mysql -uroot -p
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
七、常见问题解决
7.1 编译错误处理
问题1:CMake报错"Could NOT find NumPy"
解决方案:MySQL 5.5不需要NumPy,检查是否误加了-DWITH_PYTHON=1
参数。
问题2:make报错"undefined reference to `dlopen'"
解决方案:安装libdl开发包:
yum install -y glibc-devel
7.2 启动失败排查
步骤1:检查错误日志
tail -n 50 /var/log/mysqld.log
步骤2:常见原因
- 数据目录权限不足
- 端口3306被占用
- InnoDB日志文件损坏
八、性能优化建议
8.1 内存配置
根据服务器内存调整:
[mysqld]
innodb_buffer_pool_size = 1G # 建议为物理内存的50-70%
key_buffer_size = 256M # MyISAM引擎使用
8.2 连接数设置
max_connections = 200
thread_cache_size = 32
8.3 日志配置
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 2
九、升级与维护
9.1 版本升级流程
- 备份数据库:
mysqldump -uroot -p --all-databases > backup.sql
- 停止服务:
service mysqld stop
- 重复编译安装步骤(使用新版本源码)
- 启动服务并验证数据完整性
9.2 日常维护命令
# 检查表状态
mysqlcheck -uroot -p --all-databases --check
# 优化表
mysqlcheck -uroot -p --all-databases --optimize
关键词:CentOS 5、MySQL 5.5.x、编译安装、CMake配置、性能优化、安全加固、故障排查
简介:本文详细介绍在CentOS 5系统上通过源码编译安装MySQL 5.5.x版本的完整流程,涵盖环境准备、编译参数配置、服务初始化、安全设置及性能调优等关键环节,并提供常见问题解决方案和维护建议,适合数据库管理员和开发人员参考。