尽管大多数Linux发行版提供了MySQL的预编译包,但有时出于性能优化、定制化需求或其他原因,我们可能需要从源代码自行编译MySQL
本文将详细介绍在Linux环境下如何编译和安装MySQL,确保每一步都详尽无遗,让您轻松掌握这一技能
一、准备工作 1. 系统环境 在开始之前,请确保您的Linux系统满足以下基本要求: -操作系统:推荐使用CentOS 7/8、Ubuntu18.04/20.04等稳定版本
-内存:至少2GB RAM(建议4GB以上以获得更好的编译体验)
-磁盘空间:至少需要5GB的可用空间用于下载源代码、编译及安装
-工具链:安装GCC编译器、make工具、CMake构建系统等
2. 安装必要的依赖 对于CentOS/RHEL系统,运行以下命令安装依赖: bash sudo yum groupinstall Development Tools -y sudo yum install cmake gcc-c++ ncurses-devel bison -y 对于Ubuntu/Debian系统,使用以下命令: bash sudo apt update sudo apt install build-essential cmake libncurses5-dev bison -y 3. 下载MySQL源代码 访问MySQL官方网站或其GitHub仓库,下载最新稳定版本的源代码压缩包
例如,可以使用wget命令下载: bash wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.xx.tar.gz 将`xx`替换为具体的版本号
二、解压与配置 1. 解压源代码 使用tar命令解压下载的源代码包: bash tar -zxvf mysql-8.0.xx.tar.gz cd mysql-8.0.xx 2. 运行CMake进行配置 CMake是一个跨平台的自动化构建系统,用于生成适用于特定平台的Makefile
在MySQL的源代码目录下,运行以下命令进行配置: bash mkdir build cd build cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST=../../boost -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc/mysql -DWITH_SSL=system -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci 这里解释一下各个选项的含义: -`-DDOWNLOAD_BOOST=1` 和`-DWITH_BOOST=../../boost`:指定自动下载并使用Boost库(MySQL的某些组件依赖于Boost)
您也可以手动下载Boost库并指定路径
-`-DCMAKE_INSTALL_PREFIX=/usr/local/mysql`:指定MySQL的安装目录
-`-DSYSCONFDIR=/etc/mysql`:指定MySQL配置文件的存放目录
-`-DWITH_SSL=system`:使用系统提供的SSL库
-`-DDEFAULT_CHARSET=utf8mb4` 和`-DDEFAULT_COLLATION=utf8mb4_general_ci`:设置默认字符集和排序规则
根据您的具体需求,可以调整这些选项
三、编译与安装 1. 编译MySQL 在build目录下,运行make命令进行编译
这一过程可能需要较长时间,具体取决于您的系统性能和配置选项的复杂性: bash make 如果您有多核CPU,可以使用`-j`选项加速编译过程,例如`-j4`表示使用4个核心: bash make -j4 2. 安装MySQL 编译完成后,使用make install命令安装MySQL: bash sudo make install 四、配置MySQL服务 1. 创建用户和组 为MySQL创建一个专门的用户和组,以增强系统安全性: bash sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql 2. 设置目录权限 更改MySQL安装目录和数据目录的所有者: bash sudo chown -R mysql:mysql /usr/local/mysql sudo mkdir -p /var/lib/mysql sudo chown -R mysql:mysql /var/lib/mysql 3. 初始化数据库 在MySQL安装目录下,使用mysqld命令初始化数据库: bash sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql 注意记录初始化过程中输出的临时密码,首次登录时需要用到
4. 配置MySQL服务 创建一个systemd服务文件,以便管理MySQL服务: bash sudo nano /etc/systemd/system/mysql.service 在文件中添加以下内容: ini 【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=/var/run/mysqld/mysqld.pid LimitNOFILE =5000 【Install】 WantedBy=multi-user.target 保存并退出编辑器
然后,重新加载systemd配置并启动MySQL服务: bash sudo systemctl daemon-reload sudo systemctl start mysql sudo systemctl enable mysql 5. 安全配置 使用mysql_secure_installation脚本进行安全配置,包括设置root密码、删除匿名用户、禁止远程root登录、删除测试数据库等: bash sudo /usr/local/mysql/bin/my