《Linux下源代码编译安装MySQL 5.5.14完整教程》
MySQL作为开源关系型数据库的代表,在Linux系统下通过源代码编译安装能够提供更灵活的配置选项和更高的性能优化空间。本文以MySQL 5.5.14版本为例,详细阐述从环境准备到最终使用的完整流程,适用于CentOS/Ubuntu等主流Linux发行版。
一、安装前环境准备
1.1 系统要求检查
MySQL 5.5.14需要至少1GB内存(生产环境建议4GB+),磁盘空间需预留5GB以上。通过以下命令检查系统参数:
free -h # 查看内存
df -h # 查看磁盘空间
cat /proc/cpuinfo | grep processor | wc -l # 查看CPU核心数
1.2 依赖库安装
编译MySQL需要安装开发工具链和依赖库,不同发行版命令如下:
CentOS/RHEL系统:
yum install -y gcc make cmake ncurses-devel bison openssl-devel
Ubuntu/Debian系统:
apt-get install -y build-essential cmake libncurses5-dev bison libssl-dev
1.3 用户与组创建
为安全考虑,建议使用专用用户运行MySQL服务:
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
二、源代码获取与解压
2.1 下载官方源码包
访问MySQL官方存档网站获取5.5.14版本源码:
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.5.14.tar.gz
验证文件完整性(可选):
md5sum mysql-5.5.14.tar.gz | grep 'a1b2c3d4e5f6...'
2.2 解压与目录创建
tar -zxvf mysql-5.5.14.tar.gz
mkdir -p /usr/local/mysql
mkdir -p /var/lib/mysql # 数据存储目录
mkdir -p /etc/mysql # 配置文件目录
三、编译配置与编译安装
3.1 CMake配置参数详解
进入源码目录执行配置,关键参数说明:
cd mysql-5.5.14
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ # 安装目录
-DMYSQL_DATADIR=/var/lib/mysql \ # 数据目录
-DSYSCONFDIR=/etc/mysql \ # 配置文件目录
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ # 启用InnoDB引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 \ # 启用分区引擎
-DWITH_FEDERATED_STORAGE_ENGINE=1 \ # 启用Federated引擎
-DENABLED_LOCAL_INFILE=1 \ # 允许本地数据加载
-DWITH_DEBUG=0 \ # 禁用调试模式
-DMYSQL_TCP_PORT=3306 \ # 监听端口
-DDEFAULT_CHARSET=utf8 \ # 默认字符集
-DDEFAULT_COLLATION=utf8_general_ci \ # 默认排序规则
-DEXTRA_CHARSETS=all \ # 启用所有字符集
-DWITH_READLINE=1 \ # 启用readline支持
-DWITH_SSL=system \ # 使用系统SSL库
-DWITH_ZLIB=system \ # 使用系统zlib库
3.2 编译与安装过程
配置完成后执行编译(根据CPU核心数调整-j参数):
make -j$(nproc) # 使用所有CPU核心加速编译
make install
编译过程通常需要10-30分钟,完成后检查安装文件:
ls -l /usr/local/mysql/bin/
四、初始化数据库
4.1 修改目录权限
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /var/lib/mysql
4.2 执行初始化脚本
MySQL 5.5.14使用mysql_install_db进行初始化:
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql \
--basedir=/usr/local/mysql \
--datadir=/var/lib/mysql
成功输出应包含"INSTALLATION COMPLETE"字样。
五、配置与服务管理
5.1 创建配置文件
编辑/etc/mysql/my.cnf,基础配置示例:
[mysqld]
basedir=/usr/local/mysql
datadir=/var/lib/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
[client]
socket=/tmp/mysql.sock
5.2 创建启动脚本
对于Systemd系统(CentOS 7+/Ubuntu 16.04+):
cat > /etc/systemd/system/mysqld.service
对于SysVinit系统:
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
5.3 启动服务
systemctl daemon-reload # Systemd系统
systemctl start mysqld
systemctl enable mysqld # 设置开机启动
或SysVinit系统:
/etc/init.d/mysqld start
六、安全配置与基本使用
6.1 运行安全脚本
/usr/local/mysql/bin/mysql_secure_installation
按提示完成以下操作:
- 设置root密码
- 移除匿名用户
- 禁止root远程登录
- 移除测试数据库
- 重新加载权限表
6.2 环境变量配置
将MySQL命令加入PATH:
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
6.3 基本操作示例
登录MySQL:
mysql -uroot -p
创建测试数据库:
CREATE DATABASE testdb CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
七、常见问题解决
7.1 编译错误处理
问题1:cmake配置时提示缺少依赖
解决方案:根据错误信息安装对应开发包,如缺少libaio需安装libaio-devel。
问题2:make过程中断
解决方案:执行make clean后重新编译,检查系统内存是否充足。
7.2 启动失败排查
步骤1:检查错误日志
tail -n 100 /var/log/mysqld.log
步骤2:验证数据目录权限
ls -ld /var/lib/mysql
步骤3:检查端口占用
netstat -tulnp | grep 3306
7.3 性能优化建议
内存配置参数示例(my.cnf):
[mysqld]
innodb_buffer_pool_size=2G # 设置为物理内存的50-70%
key_buffer_size=256M # MyISAM引擎使用
query_cache_size=64M # 查询缓存
tmp_table_size=64M
max_heap_table_size=64M
八、升级与卸载
8.1 版本升级流程
1. 备份所有数据库:
mysqldump -uroot -p --all-databases > full_backup.sql
2. 停止服务并安装新版本
3. 运行mysql_upgrade工具:
/usr/local/mysql/bin/mysql_upgrade -uroot -p
8.2 完整卸载步骤
systemctl stop mysqld
rm -rf /var/lib/mysql/*
rm -rf /usr/local/mysql
rm -rf /etc/mysql
userdel mysql
groupdel mysql
rm /etc/systemd/system/mysqld.service
关键词:Linux、MySQL 5.5.14、源代码编译、安装教程、CMake配置、数据库初始化、服务管理、性能优化
简介:本文详细介绍在Linux系统下通过源代码编译安装MySQL 5.5.14的完整流程,涵盖环境准备、依赖安装、编译配置、数据库初始化、服务管理、安全配置及常见问题解决等内容,适合需要自定义安装选项的数据库管理员和开发人员。