在Ubuntu服务器上通过源码编译安装MySQL,虽然步骤比直接用apt命令复杂一些,但能让你完全掌控数据库的版本、功能模块以及性能调优参数。适合对服务器资源有极致要求,或者需要特定历史版本的用户。整个过程主要分为环境依赖、源码获取、编译配置、安装部署四个核心阶段,下面按顺序为你拆解。
安装系统依赖库
源码编译离不开各种基础开发库,打开终端后先执行系统更新,然后一次性把需要的工具链装好。运行sudo apt update && sudo apt upgrade刷新软件源列表,接着输入sudo apt install build-essential cmake libncurses5-dev libssl-dev libreadline-dev zlib1g-dev libaio-dev bison libcurl4-gnutls-dev pkg-config。这些包负责提供C语言编译器、CMake构建工具、字符集支持以及网络加密模块,缺少任何一个都可能导致后续报错中断。
下载并解压源代码
前往MySQL官方FTP或镜像站下载对应版本的tar.gz压缩包。以当前主流的稳定版为例,使用wget命令下载文件到本地目录,下载完成后用tar -zxvf文件名.tar.gz进行解压。进入解压后的mysql-X.X.X目录,你会看到完整的工程文件夹结构。建议将源码放在/home/mysql/src目录下,方便后续清理和维护,避免污染系统根目录。
配置编译选项
这一步决定了最终生成的数据库具备哪些功能。进入源码根目录后,执行cmake命令并附带参数。常用的配置是cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_TCP_PORT=3306 -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci。这里指定了安装路径、数据存放位置、配置文件目录、存储引擎开关、端口号以及默认的字符集编码。按需调整参数即可,不用强行加上不需要的插件。
执行编译与安装
配置成功后会生成Makefile文件。接下来输入make指令开始编译,这个过程比较耗时,取决于服务器CPU核心数和内存大小,通常需要在后台挂着跑几十分钟到两小时不等。如果中途提示内存不足导致进程被杀,可以尝试增加swap分区或使用make -j4并行编译加速。编译无误后,执行sudo make install完成二进制文件的正式部署。此时/usr/local/mysql目录下已经整齐排列好了可执行程序和相关脚本。
创建用户与初始化数据
出于安全规范,绝对不能使用root用户直接运行数据库。先创建专用的mysql组和用户,命令为groupadd mysql && useradd -r -g mysql mysql。然后将安装目录的权限交给该用户,执行sudo chown -R mysql:mysql /usr/local/mysql。接着切换到mysql用户并进入bin目录,运行./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql来初始化数据字典。如果是生产环境,建议去掉insecure参数以自动生成临时密码。
配置开机自启与安全加固
为了让数据库随系统重启自动拉起,需要准备systemd服务文件。在/etc/systemd/system/下新建mysql.service,写入标准的ExecStart和ExecReload路径指向/usr/local/mysql/bin/mysqld。保存后执行sudo systemctl daemon-reload重载配置,再用sudo systemctl enable mysql开启自启。启动服务后,使用sudo systemctl start mysql验证状态。最后运行/usr/local/mysql/bin/mysql_secure_installation脚本,移除测试库、禁用远程root登录、设置强密码,彻底打通安全屏障。
通过源码方式部署MySQL虽然前期投入时间较多,但后期排查故障和优化底层架构时会明显感到灵活度大幅提升。掌握这套流程后,遇到不同发行版或特殊业务需求时,你也能快速迁移复用。日常维护记得定期备份/data/mysql下的实际数据文件,并观察系统日志定位潜在异常。



