尽管大多数用户倾向于通过包管理器(如apt、yum等)快速安装MySQL,但从Linux源码编译安装MySQL不仅能够让你获得最新的功能特性,还能根据实际需求进行高度定制化配置,从而充分挖掘数据库的性能潜力
本文将带你踏上一场从Linux源码安装MySQL的深度技术探索之旅,让你深刻理解每一步操作背后的意义
一、准备工作:环境搭建与依赖安装 在开始之前,确保你的Linux系统(本文以Ubuntu为例)已经更新到最新版本,并且拥有root权限或能够使用sudo命令
此外,编译MySQL需要一系列开发工具和库文件,以下是必要的安装步骤: 1.更新系统软件包列表并升级已安装的软件包: sudo apt update sudo apt upgrade -y 2.安装编译工具和必要的库: sudo apt install -y build-essential cmake libncurses5-dev libssl-dev bison - `build-essential`:包含了编译器gcc、g++、make等基本构建工具
- `cmake`:用于配置和生成构建系统
- `libncurses5-dev`:提供终端用户界面库,MySQL的某些配置工具需要它
- `libssl-dev`:OpenSSL开发库,用于加密功能
- `bison`:一个语法分析器生成器,MySQL源代码编译时可能用到
二、下载MySQL源码 访问MySQL官方网站(https://dev.mysql.com/downloads/mysql/),选择适合你的操作系统版本的源码包进行下载
通常,你会得到一个`.tar.gz`格式的压缩文件
为了保持示例的时效性,这里假设下载的是MySQL 8.x系列的源码包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.xx.tar.gz 解压下载的文件: tar -zxvf mysql-8.0.xx.tar.gz cd mysql-8.0.xx 三、配置构建环境 进入解压后的源码目录后,使用CMake进行配置
CMake是一个跨平台的自动化构建系统,它可以根据配置文件生成适用于特定平台的Makefile或其他构建文件
MySQL的CMake配置选项非常丰富,允许你细致调整编译参数,以满足不同的性能需求和系统环境
以下是一个基本的CMake配置命令示例: mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_BOOST=boost -DDOWNLOAD_BOOST=1 -DWITH_SSL=system -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci - `-DCMAKE_INSTALL_PREFIX=/usr/local/mysql`:指定MySQL的安装目录
- `-DWITH_BOOST=boost -DDOWNLOAD_BOOST=1`:自动下载并使用Boost库(MySQL的某些组件依赖于此)
- `-DWITH_SSL=system`:使用系统安装的SSL库
- `-DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci`:设置默认字符集和排序规则为utf8mb4,以支持完整的Unicode字符集
注意:根据你的实际需求,你可能需要调整上述CMake参数
例如,如果系统中已经安装了特定版本的Boost库,你可以通过指定Boost库的路径来避免自动下载
四、编译与安装 配置完成后,执行编译和安装步骤: make sudo make install 编译过程可能会比较耗时,具体时间取决于你的硬件配置和CMake配置选项
耐心等待,直到编译完成
五、初始化数据库 安装完成后,需要对MySQL数据库进行初始化,创建必要的系统表和权限表
使用`mysqld --initialize`命令完成此操作: sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data - `--user=mysql`:指定运行MySQL服务的用户
通常,为了安全起见,我们会创建一个专门的mysql用户来运行MySQL服务
- `--basedir`和`--datadir`分别指定MySQL的安装目录和数据目录
初始化成功后,你会在终端输出中看到临时密码,记下它,因为稍后设置root用户密码时会用到
六、设置MySQL服务 1.创建mysql用户和组(如果尚未创建): sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql 2.更改数据目录的所有权: sudo chown -R mysql:mysql /usr/local/mysql/data 3.复制MySQL启动脚本到系统服务目录(以Systemd为例): MySQL源码包中通常包含一个启动脚本模板,你需要根据实际情况稍作修改,然后复制到`/etc/systemd/system/`目录下
或者,你也可以从网上找到适用于你的系统的MySQL Systemd服务单元文件
4.启动MySQL服务并设置开机自启: sudo systemctl start mysql sudo systemctl enable mysql 5.运行安全脚本,设置root密码: 使用初始化时生成的临时密码登录MySQL,然后运行`mysql_secure_installation`脚本来设置新的root密码,并配置其他安全选项,如删除匿名用户、禁止远程root登录、删除测试数据库等
sudo /usr/local/mysql/bin/mysql_secure_installation 七、验证安装 最后,通过登录MySQL服务器来验证安装是否成功: /usr/local/mysql/bin/mysql -u root -p 输入你在`mysql_secure_installation`中设置的新密码,如果成功登录,则表示MySQL已经从源码成功安装并配置完成
八、后续优化与维护 虽然MySQL的源码安装过程相对复杂,但一旦完成,你将获得对数据库管理的极大灵活性和控制权
接下来,你可以根据业务需求进行进一步的性能调优,比如调整MySQL配置文件(`my.cnf`)、监控数据库性能、定期备份数据等
- 配置文件调整:根据服务器的硬件资源和负载情况,调整`my.cnf`中的缓存大小、连接数等参数
- 性能监控:使用MySQL自带的性能模式(Performance Schema)或第三方工具(如Percon