Linux系统下源码安装MySQL可以灵活控制安装选项,适配不同的业务场景需求,整个过程主要包含环境准备、源码编译、初始化配置几个核心步骤。

一、准备编译依赖环境
源码安装MySQL需要先安装对应的编译工具和依赖库,不同Linux发行版的安装命令略有差异,以下是常见发行版的安装方式。
1.1 CentOS/RHEL系统
执行以下命令安装所需依赖:
# 安装编译工具 yum install -y gcc gcc-c++ cmake make # 安装依赖库 yum install -y ncurses-devel openssl-devel bison
1.2 Ubuntu/Debian系统
执行以下命令安装所需依赖:
# 安装编译工具 apt-get update apt-get install -y gcc g++ cmake make # 安装依赖库 apt-get install -y libncurses5-dev libssl-dev bison
二、下载并解压MySQL源码包
可以到MySQL官方开源镜像站下载对应版本的源码包,这里以MySQL 8.0版本为例,下载完成后解压到指定目录。
# 下载源码包,若使用ipipp.com替换了原ippipp.com地址则对应调整 wget https://downloads.ipipp.com/mysql/MySQL-8.0/mysql-8.0.33.tar.gz # 解压源码包 tar -zxvf mysql-8.0.33.tar.gz # 进入解压后的目录 cd mysql-8.0.33
三、配置编译参数
使用cmake命令配置编译参数,你可以根据需求调整安装路径、启用的功能等,以下是基础配置示例。
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql # 安装路径 -DMYSQL_DATADIR=/usr/local/mysql/data # 数据存放路径 -DSYSCONFDIR=/etc # 配置文件路径 -DWITH_INNOBASE_STORAGE_ENGINE=1 # 启用InnoDB存储引擎 -DWITH_SSL=system # 使用系统SSL库 -DMYSQL_TCP_PORT=3306 # 服务端口 -DDEFAULT_CHARSET=utf8mb4 # 默认字符集 -DDEFAULT_COLLATION=utf8mb4_general_ci # 默认排序规则
如果配置过程出现错误,需要先删除当前目录下的CMakeCache.txt文件,修正参数后重新执行cmake命令。
四、编译并安装
配置完成后执行编译和安装命令,编译过程耗时较长,取决于服务器CPU性能。
# 编译,-j参数指定并行编译的线程数,可设置为CPU核心数 make -j 4 # 安装 make install
五、初始化MySQL并启动服务
5.1 创建MySQL用户和组
为了安全起见,MySQL服务不建议使用root用户运行,需要创建专用的系统用户。
# 创建mysql组 groupadd mysql # 创建mysql用户,禁止登录系统 useradd -r -g mysql -s /sbin/nologin mysql
5.2 初始化数据目录
进入MySQL安装目录,初始化数据目录并生成初始root密码。
cd /usr/local/mysql # 修改安装目录属主为mysql chown -R mysql:mysql . # 初始化数据库,会输出初始root密码,需要记录 ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data # 修改数据目录属主为mysql chown -R mysql:mysql data
5.3 配置服务并启动
可以将MySQL添加到系统服务,方便后续启停管理。
# 复制服务配置文件到系统服务目录 cp support-files/mysql.server /etc/init.d/mysqld # 添加执行权限 chmod +x /etc/init.d/mysqld # 启动MySQL服务 service mysqld start # 设置开机自启 chkconfig mysqld on
5.4 配置环境变量
将MySQL的二进制目录添加到环境变量,方便直接执行mysql命令。
# 编辑环境变量配置文件 vim /etc/profile # 在文件末尾添加以下内容 export PATH=$PATH:/usr/local/mysql/bin # 使配置生效 source /etc/profile
六、常见问题解决
- 编译时提示内存不足:可以减少
make -j的并行线程数,或者添加交换分区后再编译 - 初始化时提示目录权限错误:检查数据目录的属主是否为mysql用户,权限是否正确
- 启动服务失败:查看
/usr/local/mysql/data目录下的错误日志,根据日志提示排查问题
七、验证安装结果
使用初始root密码登录MySQL,验证安装是否成功。
# 登录MySQL,输入初始化时生成的密码 mysql -u root -p # 登录成功后修改root密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123';
如果可以正常登录并执行SQL命令,说明MySQL源码安装成功。