蛙扑下载站:安全、绿色、放心的专业下载站! 首页|最近更新|专题集合|站内导航

mysql5.7编译安装教程

时间:2026-10-06 18:11:26 来源:www.vaopo.com 人气:人

环境准备与依赖安装

编译安装MySQL前,需要确保服务器满足基础条件。推荐使用CentOS 7或Ubuntu 18.04以上版本,内存至少4G,磁盘空间预留10G以上。首先更新系统包管理器,执行yum update或apt update。接着安装编译所需的依赖工具,包括gcc、g++、make、cmake、bison、ncurses-devel、openssl-devel、boost以及libaio等库文件。在CentOS系统中可以直接运行yum groupinstall development tools && yum install cmake bison ncurses-devel openssl-devel libaio boost gcc gcc-c++ -y。Ubuntu用户则使用apt install build-essential cmake libncurses5-dev libssl-dev libaio1 libboost-all-dev -y。依赖装完后,建议重启一次系统或检查内核参数,避免后续编译报错。

获取源码与解压

前往MySQL官方归档页面下载5.7版本的源码包,推荐选择mysql-5.7.44.tar.gz。下载完成后上传至服务器的opt或usr/local/src目录。使用tar命令解压,执行tar zxvf mysql-5.7.44.tar.gz。解压后进入mysql-5.7.44目录,此时可以看到完整的CMakeLists.txt文件,这是后续编译的核心配置文件。不要随意修改源码目录结构,保持默认路径最稳妥。

CMake配置参数说明

编译MySQL不能直接用make,必须先通过cmake生成构建脚本。在源码根目录执行cmake命令,并指定关键参数。常用参数包括安装路径prefix设为usr/local/mysql,数据目录datadir设为data/var/lib/mysql,字符集设置为utf8mb4,启用SSL支持,关闭不必要的功能以节省体积。例如cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_SSL=system -DENABLED_LOCAL_INFILE=1 -DWITH_BOOST=boost。注意boost库最好提前下载并指向本地路径,否则cmake会尝试在线下载导致超时。

编译与安装

cmake成功后,终端会提示可以执行make命令。开始编译,执行make -j$(nproc)。这个步骤比较耗时,根据CPU核心数自动分配线程能加快进度。编译无误后,执行make install进行文件部署。安装完成后,/usr/local/mysql目录下会出现bin、include、lib、share等标准子目录。此时不要直接启动,还需要创建专用的mysql用户和组,并将安装目录的所有权交给该用户。执行groupadd mysql && useradd -r -g mysql mysql,然后chown -R mysql:mysql /usr/local/mysql。

初始化数据库与目录权限

进入bin目录,执行mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data。这一步会生成data目录下的系统表空间和初始密码文件。insecure表示root初始密码为空,方便首次登录修改。如果生产环境要求严格,可去掉insecure参数自动生成随机密码。初始化完成后,检查data目录权限是否完全归属mysql用户,避免启动时权限拒绝报错。

配置系统服务与启动

将MySQL加入系统服务管理。复制support-files/mysql.server到/etc/init.d/mysql,或者创建systemd单元文件。推荐使用systemd方式,新建etc/systemd/system/mysqld.service,写入基本的服务描述,包含ExecStart调用usr/local/mysql/bin/mysqld,指定user=root或mysql,加载环境变量。保存后执行systemctl daemon-reload,然后systemctl start mysqld启动服务。使用systemctl enable mysqld设置开机自启。通过systemctl status mysqld查看运行状态,日志会输出在data目录下的主机名.err文件中。

安全设置与连接测试

服务正常后,输入mysql -u root -p进入命令行,初始密码为空直接回车。进入后立即执行ALTER USER root@localhost IDENTIFIED BY 你的强密码;修改密码。建议删除匿名用户,移除test数据库,限制远程root登录。使用grant语句为业务账号分配最小权限。最后用mysqladmin version或select version();验证当前版本是否为5.7.x。整个过程没有复杂的花哨操作,按步骤执行即可稳定跑通。遇到端口占用或socket找不到,检查防火墙放行3306端口及my.cnf中的路径配置。