Linux 源码编译安装 MySQL 5.5 完整教程
本文记录了在 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...,请检查:
- 用户授权是否正确:确认
user表中Host字段确实包含%或客户端 IP。 - 防火墙拦截:CentOS/RHEL 默认可能拦截 3306 端口。
# 临时关闭测试 /etc/init.d/iptables stop # 永久开放端口需修改 iptables 配置或使用 firewalld(新版系统)
总结
通过源码编译安装 MySQL 能够灵活定制安装路径和字符集,但过程相对复杂。上述流程覆盖了从依赖安装、参数配置到服务管理的完整环节。完成配置后,建议使用专用账号而非 root 进行日常应用开发。以上就是在 Linux 下编译安装 MySQL 5.5 并配置远程连接的详细内容,更多关于 Linux 数据库运维的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









