《CentOS下 MySQL 5.5.13 CMake 安装笔记》
一、引言
MySQL作为开源关系型数据库的代表,在Linux系统下有着广泛的应用。CentOS作为企业级Linux发行版,与MySQL的组合是服务器部署的常见选择。本文详细记录在CentOS 7系统下通过CMake编译安装MySQL 5.5.13版本的完整过程,涵盖环境准备、依赖安装、源码编译、初始化配置及安全加固等关键步骤,为需要定制化部署MySQL的技术人员提供参考。
二、环境准备
1. 系统版本确认
cat /etc/redhat-release
# 预期输出:CentOS Linux release 7.x.xxxx (Core)
uname -r
# 预期输出:3.10.0-xxxx.el7.x86_64
2. 关闭SELinux(临时)
setenforce 0
# 永久关闭需修改/etc/selinux/config:SELINUX=disabled
3. 关闭防火墙(可选)
systemctl stop firewalld
systemctl disable firewalld
三、依赖安装
1. 基础开发工具
yum install -y make cmake gcc gcc-c++ bison ncurses-devel openssl-devel
2. 依赖库检查
rpm -qa | grep -E 'cmake|gcc|bison|ncurses|openssl'
3. 创建专用用户
useradd -r -s /sbin/nologin mysql
mkdir -p /usr/local/mysql
chown mysql:mysql /usr/local/mysql
四、源码获取与编译
1. 下载源码包
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.5.13.tar.gz
tar -zxvf mysql-5.5.13.tar.gz
cd mysql-5.5.13
2. CMake配置参数详解
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 \
-DWITH_SSL=system
关键参数说明:
- DCMAKE_INSTALL_PREFIX:指定安装目录
- DMYSQL_DATADIR:数据文件存储路径
- DDEFAULT_CHARSET:默认字符集
- DWITH_INNOBASE_STORAGE_ENGINE:启用InnoDB引擎
3. 编译与安装
make -j$(nproc) # 使用全部CPU核心加速编译
make install
常见问题处理:
- 缺少依赖:根据错误提示安装对应rpm包
- CMake错误:清理构建目录后重新配置
make clean
rm -f CMakeCache.txt
五、初始化配置
1. 创建配置文件
cp support-files/my-medium.cnf /etc/my.cnf
# 修改关键配置
vi /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
2. 初始化数据库
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
3. 设置环境变量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
六、服务管理
1. 创建启动脚本
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
2. 启动服务
service mysqld start
# 或使用systemd(推荐)
cp support-files/mysql.server /usr/lib/systemd/system/mysqld.service
systemctl daemon-reload
systemctl enable mysqld
systemctl start mysqld
3. 验证服务状态
ps aux | grep mysqld
netstat -tulnp | grep 3306
七、安全配置
1. 运行安全脚本
/usr/local/mysql/bin/mysql_secure_installation
# 按向导完成:设置root密码、移除匿名用户、禁止远程root登录等
2. 创建专用用户
mysql -u root -p
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'SecurePass123!';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
八、日志与维护
1. 日志配置
# 在my.cnf中添加
[mysqld]
log-error=/var/log/mysqld.log
slow_query_log=1
slow_query_log_file=/var/log/mysql-slow.log
long_query_time=2
2. 备份策略
# 物理备份示例
tar -czf /backup/mysql_$(date +%Y%m%d).tar.gz /usr/local/mysql/data
# 逻辑备份
mysqldump -u root -p --all-databases > /backup/full_backup_$(date +%Y%m%d).sql
九、性能优化建议
1. 内存配置调整
# my.cnf关键参数
[mysqld]
innodb_buffer_pool_size=2G # 建议为物理内存的50-70%
key_buffer_size=256M # MyISAM引擎使用
query_cache_size=64M
2. 连接数设置
max_connections=200
thread_cache_size=32
十、常见问题解决方案
1. 启动失败排查
# 查看错误日志
cat /var/log/mysqld.log
# 检查端口占用
lsof -i :3306
# 检查数据目录权限
ls -ld /usr/local/mysql/data
2. 字符集问题处理
# 确认数据库字符集
mysql -u root -p -e "SHOW VARIABLES LIKE 'character_set%';"
# 修改表字符集
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
关键词:CentOS 7、MySQL 5.5.13、CMake编译、源码安装、数据库配置、性能优化、安全加固、SELinux、依赖管理、服务管理
简介:本文详细记录在CentOS 7系统下通过CMake编译安装MySQL 5.5.13的完整流程,涵盖环境准备、依赖安装、源码编译、初始化配置、服务管理、安全加固及性能优化等关键环节,特别针对编译参数配置、字符集设置、备份策略等企业级应用场景提供解决方案,适合需要定制化部署MySQL的技术人员参考。