Linux 源码编译安装 MySQL 5.5 完整教程

Hazel
Hazel
发布时间:2026-10-13 | 2人浏览过
原创

本文记录了在 Linux 系统中通过源码编译安装 MySQL 5.5 的完整流程。主要内容包括使用 CMake 进行编译配置、创建运行用户、初始化数据目录、设置系统服务以及配置 root 账号和远程访问权限等关键操作步骤。

目标与环境准备

本教程旨在通过源码方式安装 MySQL 5.5.x 版本。该版本不再支持传统的 Makefile 构建,必须依赖 cmake 工具。操作基于 RHEL/CentOS 类系统(如 RHEL 5),需具备 root 权限。

需要准备两个核心源码包:

  • cmake-2.8.4.tar.gz:用于生成 Makefile 配置文件。
  • mysql-5.5.10.tar.gz:MySQL 源程序包。

第1步:安装依赖工具 CMake

由于 MySQL 5.5+ 依赖 CMake 编译,若系统未安装则需手动编译安装。

cd /usr/local
# 解压 CMake 源码
tar -zxv -f cmake-2.8.4.tar.gz
cd cmake-2.8.4
# 执行配置、编译与安装
./configure
make
make install

第2步:创建安装目录与系统用户

建议将 MySQL 安装在独立目录,并建立专用的系统用户以提升安全性。

# 创建安装目录和数据目录
mkdir -p /usr/local/mysql
mkdir -p /usr/local/mysql/data

# 创建 mysql 用户组
groupadd mysql

# 创建 mysql 用户并加入组 (-r 表示创建系统用户)
useradd -r -g mysql mysql

第3步:编译安装 MySQL

进入 MySQL 源码目录,使用 cmake 进行配置。注意:重新编译前务必清除旧的缓存文件,否则可能导致配置失效。

# 假设在 /usr/local 目录下解压
cd /usr/local
rm -rf /etc/my.cnf

# 解压并进入目录
tar -zxv -f mysql-5.5.10.tar.gz
cd mysql-5.5.10

# 执行 cmake 配置
# 根据实际路径调整参数,以下为常用标准配置
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=1

配置完成后,执行编译和安装:

make
make install

CMake 关键参数说明

  • -DCMAKE_INSTALL_PREFIX: 安装主目录,此处设为 /usr/local/mysql。
  • -DMYSQL_DATADIR: 数据库存放目录,设为 /usr/local/mysql/data。
  • -DDEFAULT_CHARSET 与 -DDEFAULT_COLLATION: 默认使用 utf8 字符集,确保中文不乱码。
  • -DENABLED_LOCAL_INFILE=1: 允许使用 LOAD DATA LOCAL INFILE 命令导入本地数据。

排错提醒:若需更改编译参数重新安装,必须先运行 make clean 并删除 CMakeCache.txt 文件。

第4步:配置目录权限与初始化

安装完成后,需要修正文件所有者,初始化系统数据库表,并复制配置文件。

cd /usr/local/mysql

# 将整个安装目录的所有者设为 root,所属组为 mysql
chown -R root:mysql .

# 将数据目录的所有者设为 mysql
chown -R mysql:mysql data

# 复制配置文件模板
# 注意:如果已存在 my.cnf,请备份后覆盖或合并配置
cp support-files/my-medium.cnf /etc/my.cnf

# 初始化系统数据库(注意:MySQL 8.0+ 需使用 mysqld --initialize)
scripts/mysql_install_db --user=mysql

第5步:设置环境变量与启动服务

为了使系统能直接调用 mysql 命令,需将 bin 目录加入环境变量。

vi /root/.bash_profile

# 在 PATH 变量末尾追加以下内容
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib

# 使配置生效
source /root/.bash_profile

启动 MySQL 服务

方法一:通过后台脚本直接启动(不推荐生产环境长期如此操作,难以维护)。

cd /usr/local/mysql
./bin/mysqld_safe --user=mysql &

方法二:注册为系统服务(推荐)。

# 拷贝启动脚本到系统服务目录
# 根据系统不同,源文件可能在 support-files 或 share/mysql 中
cp support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql

# 启用服务管理命令
chkconfig --add mysql
chkconfig --level 35 mysql on

此后即可使用以下命令管理服务:

service mysql start    # 启动
service mysql stop     # 停止
service mysql restart  # 重启

第6步:安全配置与远程访问

初次安装时 root 用户通常无密码。登录后首先应设置密码,并根据需求开放远程连接。

# 登录 MySQL(初始无密码直接回车)
mysql -u root mysql

USE mysql;

# 1. 修改 root 本地登录密码
UPDATE user SET Password = PASSWORD('your_new_password') WHERE User='root';

# 2. 允许 root 从任何 IP 远程连接
# 注意:生产环境中建议指定具体 IP,避免安全风险
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_new_password' WITH GRANT OPTION;

# 3. 刷新权限使更改立即生效
FLUSH PRIVILEGES;

EXIT;

排查远程连接失败问题

若连接时报错 Error 1130: Host ... is not allowed to connect...,请检查:

  1. 用户授权是否正确:确认 user 表中 Host 字段确实包含 % 或客户端 IP。
  2. 防火墙拦截:CentOS/RHEL 默认可能拦截 3306 端口。
    # 临时关闭测试
    /etc/init.d/iptables stop
    
    # 永久开放端口需修改 iptables 配置或使用 firewalld(新版系统)

总结

通过源码编译安装 MySQL 能够灵活定制安装路径和字符集,但过程相对复杂。上述流程覆盖了从依赖安装、参数配置到服务管理的完整环节。完成配置后,建议使用专用账号而非 root 进行日常应用开发。以上就是在 Linux 下编译安装 MySQL 5.5 并配置远程连接的详细内容,更多关于 Linux 数据库运维的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表