位置: 文档库 > 数据库 > 源码安装MySQL 5.5.14到个人目录

源码安装MySQL 5.5.14到个人目录

ChallengeDragon 上传于 2025-05-10 00:30

《源码安装MySQL 5.5.14到个人目录》

在Linux系统中,通过源码编译安装MySQL 5.5.14到个人目录是一种灵活且可控的方式,尤其适合需要定制化配置或无法使用包管理器安装的场景。本文将详细介绍从下载源码、配置编译选项到完成安装的全流程,并针对常见问题提供解决方案。

一、准备工作

1.1 系统环境要求

MySQL 5.5.14对系统环境有明确要求:

  • Linux内核版本建议2.6以上
  • GCC编译器版本需4.1+(推荐4.4+)
  • Cmake 2.6+(用于配置编译)
  • Ncurses开发库(用于命令行交互)

可通过以下命令检查环境:

gcc --version
cmake --version
ldconfig -p | grep ncurses

1.2 创建个人目录结构

在用户主目录下创建MySQL专用目录:

mkdir -p ~/mysql/install ~/mysql/data ~/mysql/logs

目录说明:

  • install:存放编译后的二进制文件
  • data:存储数据库数据文件
  • logs:存放错误日志和慢查询日志

二、下载源码包

2.1 官方源码获取

从MySQL官方仓库下载5.5.14版本源码:

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.5.14.tar.gz

验证文件完整性:

sha1sum mysql-5.5.14.tar.gz | grep '正确的SHA1值'

2.2 解压源码

tar -zxvf mysql-5.5.14.tar.gz
cd mysql-5.5.14

三、编译配置

3.1 安装依赖库

在Ubuntu/Debian系统上安装必要依赖:

sudo apt-get install build-essential cmake libncurses5-dev bison

在CentOS/RHEL系统上:

sudo yum install gcc-c++ cmake ncurses-devel bison

3.2 配置编译选项

使用Cmake配置编译参数,关键选项说明:

  • -DCMAKE_INSTALL_PREFIX:指定安装目录
  • -DMYSQL_DATADIR:指定数据目录
  • -DWITH_INNOBASE_STORAGE_ENGINE:启用InnoDB引擎
  • -DENABLED_LOCAL_INFILE:允许本地文件加载

完整配置命令:

cmake . \
-DCMAKE_INSTALL_PREFIX=~/mysql/install \
-DMYSQL_DATADIR=~/mysql/data \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DSYSCONFDIR=~/mysql/etc \
-DWITH_DEBUG=0

3.3 编译与安装

使用多核编译加速(假设4核CPU):

make -j4 && make install

编译完成后检查安装目录:

ls ~/mysql/install/bin/

应包含mysql、mysqld等核心程序。

四、初始化数据库

4.1 创建配置文件

在~/mysql/etc目录下创建my.cnf:

[client]
port = 3306
socket = /tmp/mysql.sock

[mysqld]
user = $USER
port = 3306
basedir = ~/mysql/install
datadir = ~/mysql/data
socket = /tmp/mysql.sock
log-error = ~/mysql/logs/error.log
pid-file = ~/mysql/logs/mysql.pid
skip-name-resolve

4.2 初始化数据目录

执行初始化脚本(注意使用绝对路径):

~/mysql/install/scripts/mysql_install_db \
--user=$USER \
--basedir=~/mysql/install \
--datadir=~/mysql/data

成功输出应包含"Installation of system table finished"字样。

五、启动与验证

5.1 启动MySQL服务

使用安全模式启动(避免网络监听):

~/mysql/install/bin/mysqld_safe \
--defaults-file=~/mysql/etc/my.cnf \
--skip-grant-tables &

或正常模式启动:

~/mysql/install/bin/mysqld_safe \
--defaults-file=~/mysql/etc/my.cnf &

5.2 验证服务状态

检查进程是否存在:

ps aux | grep mysqld

查看错误日志:

tail -f ~/mysql/logs/error.log

5.3 连接测试

使用客户端连接:

~/mysql/install/bin/mysql -u root -S /tmp/mysql.sock

执行简单查询验证:

SHOW VARIABLES LIKE 'version%';

六、安全配置

6.1 设置root密码

在MySQL命令行中执行:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('你的密码');
FLUSH PRIVILEGES;

6.2 创建专用用户

CREATE USER 'appuser'@'localhost' IDENTIFIED BY '用户密码';
GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;

6.3 删除匿名用户

DROP USER ''@'localhost';

七、环境变量配置

7.1 添加PATH变量

在~/.bashrc或~/.bash_profile中添加:

export PATH=~/mysql/install/bin:$PATH
export MYSQL_HOME=~/mysql/install

生效配置:

source ~/.bashrc

7.2 验证环境变量

which mysql
echo $MYSQL_HOME

八、常见问题解决

8.1 编译错误处理

问题1:缺少依赖库

现象:CMake报错"Could NOT find Xxx"

解决方案:安装对应开发包(如libaio-dev)

问题2:InnoDB启动失败

现象:error.log中出现"InnoDB: Failed to find tablespace"

解决方案:删除ibdata1文件后重新初始化

8.2 运行错误处理

问题1:权限不足

现象:Can't create/write to file '/tmp/mysql.sock'

解决方案:检查数据目录权限

chown -R $USER:$USER ~/mysql/data

问题2:端口冲突

现象:Address already in use

解决方案:修改my.cnf中的port参数或终止冲突进程

九、卸载方法

9.1 停止服务

~/mysql/install/bin/mysqladmin -u root -p shutdown

9.2 删除文件

rm -rf ~/mysql/install ~/mysql/data ~/mysql/logs ~/mysql/etc

9.3 清理环境变量

编辑~/.bashrc删除相关PATH和MYSQL_HOME配置

十、性能优化建议

10.1 内存配置

在my.cnf中添加:

[mysqld]
innodb_buffer_pool_size = 512M  # 根据物理内存调整
key_buffer_size = 128M
query_cache_size = 64M

10.2 日志配置

slow_query_log = 1
slow_query_log_file = ~/mysql/logs/slow.log
long_query_time = 2
log_queries_not_using_indexes = 1

10.3 连接数优化

max_connections = 200
thread_cache_size = 32

关键词:MySQL源码安装个人目录部署、Cmake配置、数据库初始化、安全配置、性能优化、依赖管理错误排查

简介:本文详细介绍了MySQL 5.5.14从源码编译到个人目录部署的全过程,包括环境准备、依赖安装、编译配置、数据库初始化、服务启动、安全设置及性能优化等关键步骤,并提供了常见问题的解决方案和卸载方法,适合需要定制化部署MySQL的开发者参考。