MySQL,作为世界上最流行的开源关系型数据库管理系统之一,广泛应用于各种Web应用和服务器环境中
尽管Ubuntu的官方软件仓库中提供了MySQL的预编译二进制包,但有时候出于性能优化、特定功能需求或是学习目的,从源码编译安装MySQL成为了一个不错的选择
本文将详细阐述在Ubuntu环境下如何从源码安装MySQL,确保每一步都清晰明了,让你轻松掌握这一高级技能
一、准备工作 在进行源码安装之前,确保你的系统已经更新到最新版本,并且具备必要的构建工具和依赖库
这不仅有助于避免编译错误,还能确保MySQL的性能和安全得到最优配置
1.更新系统 打开终端,执行以下命令来更新你的Ubuntu系统: bash sudo apt update sudo apt upgrade -y 2.安装必要的依赖 MySQL的编译依赖于多种开发工具和库
运行以下命令来安装它们: bash sudo apt install -y build-essential cmake libncurses5-dev libssl-dev bison 这里解释一下各个包的作用: -`build-essential`:包含编译器(gcc等)、make工具等编译所必需的软件包
-`cmake`:用于配置MySQL源码编译的选项
-`libncurses5-dev`:提供字符界面库,MySQL的某些组件需要它
-`libssl-dev`:提供SSL加密库,用于安全通信
-`bison`:语法分析器生成器,用于处理MySQL源码中的YACC文件
二、下载MySQL源码 1.访问MySQL官方网站 前往【MySQL官方网站】(https://dev.mysql.com/downloads/mysql/)下载最新的稳定版本源码包
注意选择适用于Linux的源码压缩包(通常是`.tar.gz`格式)
2.使用wget下载 你也可以直接在终端中使用`wget`命令下载源码包,例如: bash wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.xx.tar.gz 请将`mysql-8.0.xx.tar.gz`替换为你想要下载的具体版本号
3.解压源码包 下载完成后,解压源码包: bash tar -xzvf mysql-8.0.xx.tar.gz cd mysql-8.0.xx 三、配置与编译 1.运行cmake进行配置 在源码目录下,运行`cmake`命令来配置编译选项
这里是一个基本的配置示例: bash mkdir build cd build cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST=../boost -DWITH_SSL=system -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci 解释: -`mkdir build && cd build`:创建一个独立的构建目录,避免污染源码目录
-`-DDOWNLOAD_BOOST=1 -DWITH_BOOST=../boost`:指定下载并使用Boost库(MySQL的某些组件依赖Boost)
`../boost`是一个相对路径,你可以根据需要调整
-`-DWITH_SSL=system`:使用系统自带的SSL库
-`-DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci`:设置默认字符集和排序规则为utf8mb4,以支持更多的Unicode字符
2.编译源码 配置完成后,开始编译过程: bash make 编译时间可能会比较长,具体取决于你的硬件配置
耐心等待,直到编译完成
3.安装MySQL 编译成功后,执行安装命令: bash sudo make install 四、初始化数据库 1.创建MySQL用户和组 在系统中创建一个专门用于运行MySQL服务的用户和组: bash sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql 2.设置数据目录 创建一个目录用于存放MySQL的数据文件,并更改其所有权: bash sudo mkdir /var/lib/mysql sudo chown -R mysql:mysql /var/lib/mysql 3.初始化数据库 使用`mysqld --initialize`命令初始化数据库: bash sudo bin/mysqld --initialize --user=mysql --datadir=/var/lib/mysql 注意:从MySQL 5.7开始,初始化命令变为`mysqld --initialize`,之前的版本使用的是`mysql_install_db`
4.配置MySQL服务 创建一个systemd服务文件,以便管理MySQL服务的启动和停止
在`/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/my.cnf LimitNOFILE = 5000 【Install】