
尽管大多数Linux发行版提供了MySQL的预编译二进制包或通过包管理器(如apt、yum)进行安装,但有时候,出于性能优化、定制化需求或学习目的,从源码编译安装MySQL成为了一个不可或缺的技能
本文将详细讲解如何在Linux下从源码安装MySQL,确保每一步都清晰明了,让你轻松掌握这一高级技能
一、准备工作 在进行源码编译安装之前,确保你的系统满足以下基本条件: 1.操作系统:本文基于常见的Linux发行版,如Ubuntu、CentOS等,步骤大同小异,请根据具体发行版适当调整
2.依赖工具:安装必要的编译工具和库文件
这通常包括gcc、g++、make、cmake、bison、ncurses-devel(或libncurses5-dev)、libaio-dev等
3.用户权限:拥有sudo权限或root账户,以便安装软件包和设置服务
4.下载MySQL源码:访问MySQL官方网站或官方GitHub仓库获取最新稳定版本的源码包
二、安装编译依赖 Ubuntu/Debian系 bash sudo apt update sudo apt install -y build-essential cmake libncurses5-dev libssl-dev bison libaio-dev CentOS/RHEL系 bash sudo yum groupinstall -y Development Tools sudo yum install -y cmake ncurses-devel openssl-devel bison libaio-devel 三、下载MySQL源码 访问【MySQL官方下载页面】(https://dev.mysql.com/downloads/mysql/)或【MySQL GitHub仓库】(https://github.com/mysql/mysql-server),找到你需要的MySQL版本,下载对应的源码压缩包(通常是`.tar.gz`格式)
例如,使用wget命令下载: bash wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.xx.tar.gz 将`xx`替换为具体的版本号
四、解压源码包 将下载的源码包解压到指定目录,通常选择`/usr/local/src`作为存放源码的位置: bash sudo tar -zxvf mysql-8.0.xx.tar.gz -C /usr/local/src/ cd /usr/local/src/mysql-8.0.xx/ 五、创建构建目录并运行CMake 在源码目录下,创建一个独立的构建目录,这是为了保持源码目录的清洁,便于后续可能的重新编译或清理操作
bash mkdir build cd build 接下来,使用CMake配置构建选项
CMake是一个跨平台的自动化构建系统,能够生成适合不同平台的Makefile或其他构建文件
MySQL的CMake配置非常灵活,允许用户指定各种编译选项
bash cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc/mysql -DWITH_BOOST=boost -DWITH_SSL=system -DDOWNLOAD_BOOST=1 -DWITH_EMBEDDED_SERVER=OFF -DWITH_DEBUG=OFF 这里的配置选项解释如下: -`CMAKE_INSTALL_PREFIX`:指定MySQL的安装目录
-`MYSQL_DATADIR`:指定MySQL数据文件的存放目录
-`SYSCONFDIR`:指定MySQL配置文件的存放目录
-`WITH_BOOST`:指定Boost库的路径(如果使用系统自带的Boost库,则设为`system`)
-`WITH_SSL`:启用SSL支持
-`DOWNLOAD_BOOST`:如果系统没有安装Boost库,设置为1让CMake自动下载并使用Boost
-`WITH_EMBEDDED_SERVER`:是否编译嵌入式服务器,一般设置为OFF
-`WITH_DEBUG`:是否启用调试模式,生产环境通常设置为OFF
注意:根据你的具体需求,可能需要调整上述选项
例如,如果你已经手动安装了Boost库,可以省略`DOWNLOAD_BOOST`选项,并正确设置`WITH_BOOST`路径
六、编译与安装 配置完成后,开始编译过程
这个过程可能会比较耗时,取决于你的硬件配置和选择的MySQL版本
bash make sudo make install 七、初始化数据库 安装完成后,需要初始化数据库
这一步会创建系统表、权限表等必要的数据库结构
bash cd /usr/local/mysql/bin sudo ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 注意输出的日志信息,其中会包含临时root密码,记下这个密码,稍后需要用到
八、设置MySQL服务 为了方便管理MySQL服务,可以创建一个systemd服务单元文件
以下是一个示例: ini /etc/systemd/system/mysql.service 【Unit】 Description=MySQL Server After=network.target After=syslog.target 【Service】 User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/mysql/my.cnf PIDFile=/usr/local/mysql/data/mysql.pid LimitNOFILE =5000 【Install】 WantedBy=multi-user.target 创建mysql用户和组(如果尚未创建): bash sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql 更改数据目录和MySQL安装目录的所有权: bash sudo chown -R mysql:mysql /usr/local/mysql sudo chown -R mysql:mysql /usr/local/mysql/data 启动MySQL服务并设置开机自启: bash sudo systemctl daemon-reload sudo systemctl start mysql sudo systemctl enable mysql 九、安全配置与初次登录 使用初始化时生成的临时root密码登录MySQL: bash mysql_secure_installation 按照提示,你将有机会更改root密码、删除匿名用户、禁止root远程登录、删除测试数据库以及重新加载权限表
这是提高MySQL安全性的重要步骤
十、环境变量配置 为了方便在命令行中使用mysql命令,可以将MySQL的bin目录添加到PATH环境变量中
编辑`~/.bashrc`或`~/.bash_profile`文件,添加以下行: bash export PATH=/usr/local/mysql/bin:$PATH 然后执行`source ~/.bashrc`使更改生效
十一、验证安装 最后,通
MySQL在VS2010中的集成与应用
Linux系统安装MySQL源码指南
MySQL数据库导入,零错误指南
MySQL设置定时任务全攻略
MySQL数据库版本升级指南:轻松掌握更新要点
JSON数据导入MySQL实战指南
MySQL修改表字段类型长度指南
MySQL数据库打造高效贴吧系统
Docker环境编译安装MySQL教程
MySQL5.7.25安装全攻略
MySQL8.0 安装配置全攻略
MySQL数据库构建学生、老师与课程管理系统指南
MySQL安装:配置文件路径详解
MySQL安装大小详解:空间需求与优化配置指南
MySQL1862错误:Linux系统解决指南
MySQL安装最后一步无响应?解决攻略来了!
电脑配置详解:如何安装MySQL数据库
CentOS7离线安装MySQL6全攻略
Linux环境下编译MySQL客户端指南