《Linux下源码编译MySQL 5.5与安装过程全记录》
一、引言
MySQL作为开源关系型数据库的代表,以其高性能、高可靠性和易用性成为Web应用的首选。尽管现代Linux发行版已提供预编译的MySQL包,但通过源码编译安装可灵活定制配置参数、优化性能,并解决版本兼容性问题。本文以CentOS 7为例,详细记录MySQL 5.5.62源码编译与安装的全过程,涵盖环境准备、编译选项配置、安装部署及基础验证。
二、环境准备
1. 系统要求
MySQL 5.5对Linux内核版本要求较低,但需确保系统已安装基础开发工具链。推荐使用64位系统以获得最佳性能。
2. 依赖包安装
执行以下命令安装编译依赖:
yum install -y gcc gcc-c++ make cmake ncurses-devel bison openssl-devel
说明:
- gcc/gcc-c++:C/C++编译器
- cmake:构建系统生成工具(MySQL 5.5+使用CMake替代旧版configure)
- ncurses-devel:终端界面库
- bison:语法分析器生成器
- openssl-devel:SSL加密支持
3. 用户与目录创建
为安全起见,创建专用用户并设置数据目录:
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
mkdir -p /usr/local/mysql/data
chown mysql:mysql /usr/local/mysql/data
三、源码获取与解压
1. 下载源码包
从MySQL官方仓库获取5.5.62版本(需确认MD5校验值):
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.5.62.tar.gz
md5sum mysql-5.5.62.tar.gz # 验证值应与官网一致
2. 解压与初始化
tar zxvf mysql-5.5.62.tar.gz
cd mysql-5.5.62
四、CMake配置编译选项
MySQL 5.5采用CMake构建系统,需通过CMakeLists.txt定义编译参数。关键选项如下:
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-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 \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_SSL=system \
-DMYSQL_TCP_PORT=3306 \
-DWITH_DEBUG=0
参数说明:
- 安装路径:指定二进制文件、库的安装目录
- 数据目录:定义数据文件存储位置
- 存储引擎:启用InnoDB、MyISAM等核心引擎
- 字符集:设置为UTF-8以支持多语言
- 端口:默认3306,可修改为其他端口
五、编译与安装
1. 编译过程
配置完成后执行编译(建议使用-j参数并行编译):
make -j$(nproc) # 根据CPU核心数自动并行
2. 安装二进制文件
make install
3. 验证安装结果
ls /usr/local/mysql/bin/ # 应包含mysqld、mysql等核心程序
六、初始化数据库
1. 复制配置文件模板
cp support-files/my-medium.cnf /etc/my.cnf
修改/etc/my.cnf关键配置:
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
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. 启动MySQL服务
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
/etc/init.d/mysqld start
2. 验证服务状态
ps aux | grep mysqld
netstat -tulnp | grep 3306
3. 安全初始化
运行安全脚本设置root密码并移除匿名账户:
mysql_secure_installation
4. 基础测试
mysql -uroot -p
# 输入密码后执行
SHOW VARIABLES LIKE '%version%';
CREATE DATABASE testdb;
USE testdb;
CREATE TABLE test_table (id INT PRIMARY KEY, name VARCHAR(20));
INSERT INTO test_table VALUES (1, 'MySQL 5.5');
SELECT * FROM test_table;
八、常见问题解决
1. 编译错误处理
问题:cmake报错"Could NOT find Bison"
解决:安装bison开发包
yum install bison
2. 启动失败处理
问题:错误日志显示"Can't find error-message file"
解决:检查--basedir参数是否正确,或手动创建符号链接:
ln -s /usr/local/mysql/share/english /usr/local/mysql/share/errmsg
3. 权限问题
问题:数据目录权限不足
解决:确保/usr/local/mysql/data属主为mysql用户
chown -R mysql:mysql /usr/local/mysql/data
九、性能优化建议
1. 内存配置
在my.cnf中调整InnoDB缓冲池大小(建议为物理内存的50-70%):
innodb_buffer_pool_size=2G
2. 连接数优化
max_connections=200
thread_cache_size=32
3. 日志配置
slow_query_log=1
slow_query_log_file=/var/log/mysql-slow.log
long_query_time=2
十、总结
通过源码编译安装MySQL 5.5,开发者可获得对数据库系统的完全控制权,包括存储引擎选择、性能参数调优和安全配置定制。本文详细记录了从环境准备到基础验证的全流程,并提供了常见问题的解决方案。实际生产环境中,建议结合监控工具(如Percona Monitoring)持续优化数据库性能。
关键词:Linux、MySQL 5.5、源码编译、CMake、安装配置、存储引擎、性能优化、安全初始化
简介:本文详细记录Linux系统下MySQL 5.5数据库的源码编译安装过程,涵盖环境准备、CMake配置、编译安装、初始化设置及基础验证,并提供常见问题解决方案和性能优化建议。