Linux环境下MySQL源码包安装前的准备工作
在Linux系统中通过源码包安装MySQL,相较于二进制包或RPM包,能提供更高的自定义性和灵活性,但过程相对复杂,安装前需确保系统环境满足要求,并完成必要的准备工作。

系统环境检查
MySQL源码编译对系统依赖和硬件资源有一定要求,建议使用稳定的Linux发行版,如CentOS 7+、Ubuntu 18.04+等,核心检查项包括:
- 操作系统版本:通过
uname -r确认内核版本,推荐3.10以上; - 编译工具:安装GCC、CMake、Make等编译工具,例如在CentOS中执行
yum groupinstall "Development Tools",Ubuntu中执行apt install build-essential; - 依赖库:MySQL依赖
ncurses-devel、openssl-devel、libcurl-devel等库,需提前安装(CentOS:yum install ncurses-devel openssl-devel libcurl-devel;Ubuntu:apt install libncurses5-dev libssl-dev libcurl4-openssl-dev); - 磁盘空间:确保根目录或
/usr/local有至少5GB可用空间,用于存放源码和编译后的文件。
用户与权限配置
MySQL运行需独立用户,避免使用root账户,执行以下命令创建MySQL用户和用户组:
groupadd mysql useradd -r -g mysql mysql
其中-r表示系统用户,不创建家目录,后续编译和安装过程建议使用普通用户(如mysql)或sudo提权,避免直接使用root操作。
下载MySQL源码包
从MySQL官网(https://dev.mysql.com/downloads/mysql/)下载最新稳定版源码包,选择“Source Code”类型的tar.gz压缩包,例如下载MySQL 8.0.34版本:
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.34.tar.gz
boost库是MySQL 8.0编译的必需依赖,官方已集成在源码包中,无需单独下载。
MySQL源码包的编译与安装
完成准备工作后,进入源码编译阶段,核心步骤包括解压、配置、编译和安装。
解压源码包
将下载的源码包解压至指定目录(如/usr/local/src):
tar -xvf mysql-boost-8.0.34.tar.gz -C /usr/local/src cd /usr/local/src/mysql-8.0.34
配置编译参数
使用CMake工具配置编译选项,这是源码安装的关键步骤,常用参数说明:

-DCMAKE_INSTALL_PREFIX:安装路径,默认/usr/local/mysql;-DMYSQL_DATADIR:数据存储路径,建议单独设置(如/data/mysql);-DDEFAULT_CHARSET:默认字符集,推荐utf8mb4;-DDEFAULT_COLLATION:默认排序规则,推荐utf8mb4_general_ci;-DWITH_BOOST:指定boost库路径(已集成则无需手动设置);-DWITH_SSL:启用SSL支持(默认开启)。
示例配置命令:
cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/data/mysql \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_general_ci \ -DWITH_BOOST=boost \ -DWITH_SSL=yes
若配置失败(如依赖缺失),可通过make clean清理后重新执行。
编译与安装
配置完成后,执行编译和安装命令,编译过程耗时较长,根据服务器性能可能需要10-30分钟:
make -j$(nproc) # 使用多核并行编译,加快速度 make install # 安装到指定路径
编译完成后,检查/usr/local/mysql目录是否存在,确认安装成功。
MySQL初始化与启动配置
源码安装后,需进行初始化配置,包括数据目录权限、配置文件创建、服务启动等步骤。
创建数据目录并授权
mkdir -p /data/mysql chown -R mysql:mysql /data/mysql chown -R mysql:mysql /usr/local/mysql
初始化MySQL数据目录
使用mysqld工具初始化数据库,生成系统表和临时密码:
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
记录初始化日志中的临时密码(通常在~/.mysql_secret或日志末尾)。
创建配置文件
MySQL源码包默认不提供my.cnf,需手动创建,建议在/etc目录下创建:

vim /etc/my.cnf ``` 参考(根据实际需求调整): ```ini [mysqld] basedir = /usr/local/mysql datadir = /data/mysql port = 3306 socket = /tmp/mysql.sock character-set-server = utf8mb4 collation-server = utf8mb4_general_ci default_authentication_plugin = mysql_native_password [client] port = 3306 socket = /tmp/mysql.sock default-character-set = utf8mb4
配置系统服务
创建systemd服务文件,实现开机自启和便捷管理:
vim /etc/systemd/system/mysqld.service ``` 如下: ```ini [Unit] Description=MySQL Server After=network.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE=65536 [Install] WantedBy=multi-user.target
启动服务并设置开机自启:
systemctl daemon-reload systemctl start mysqld systemctl enable mysqld
修改root密码与安全配置
首次登录需使用临时密码:
/usr/local/mysql/bin/mysql -u root -p
登录后执行以下命令修改密码(替换YourNewPassword):
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword'; FLUSH PRIVILEGES;
运行mysql_secure_installation脚本,完成匿名用户删除、测试库移除等安全配置。
常见问题与注意事项
- 编译失败:检查依赖库是否完整,可通过
yum或apt安装缺失组件; - 权限问题:确保
mysql用户对数据目录和安装目录有读写权限; - 端口冲突:若3306端口被占用,修改
my.cnf中的port参数; - 字符集乱码:确认配置文件中
character-set-server和collation-server设置正确; - 服务无法启动:检查
mysqld.log日志(通常在/data/mysql或/usr/local/mysql/data),定位错误原因。
通过以上步骤,即可完成Linux环境下MySQL源码包的安装与配置,相较于预编译包,源码安装虽复杂,但能根据实际需求优化编译选项,适合对性能和功能有定制化要求的场景。



















