Linux 系统上编译安装 MySQL 的详细步骤

MySQL 是一款功能强大的开源关系型数据库管理系统,广泛应用于各种开发场景,在 Linux 系统上编译安装 MySQL,可以让我们更好地掌握其底层原理,同时也能够根据自己的需求进行定制化配置,本文将详细介绍在 Linux 系统上编译安装 MySQL 的步骤,旨在为读者提供专业、权威、可信的安装指南。
安装编译环境
在开始编译安装 MySQL 之前,我们需要安装必要的编译环境,以下是在 Ubuntu 系统上安装编译环境的步骤:
更新系统源
sudo apt-get update
安装编译工具
sudo apt-get install -y build-essential
安装其他依赖
sudo apt-get install -y libncurses5-dev libncursesw5-dev libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl
下载 MySQL 源码
MySQL 官方网站提供了 MySQL 源码的下载,以下是在 Linux 系统上下载 MySQL 源码的步骤:
-
进入 MySQL 官方网站:https://dev.mysql.com/downloads/source/mysql-5.7/
-
选择适合的版本和操作系统,点击“Download”按钮下载源码包。
-
将下载的源码包解压到指定目录:
tar -zxvf mysql-5.7.29.tar.gz -C /usr/local/src/
编译安装 MySQL
进入源码目录:

cd /usr/local/src/mysql-5.7.29
创建编译目录:
mkdir -p /usr/local/mysql
编译 MySQL:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DSYSCONFDIR=/etc \ -DWITH_INNODB_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ -DWITH_FEDERATED=0 \ -DWITH_EMBEDDED_SERVER=1 \ -DWITH_DEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all
安装 MySQL:
make && make install
配置 MySQL
初始化 MySQL 数据库:
cd /usr/local/mysql sudo bin/mysqld --initialize --user=mysql
配置 MySQL:
sudo cp support-files/my-medium.cnf /etc/my.cnf
修改权限:
sudo chown -R mysql:mysql /usr/local/mysql/
添加 MySQL 服务:
sudo cp support-files/mysql.server /etc/init.d/mysqld sudo chmod +x /etc/init.d/mysqld
启动 MySQL 服务:
sudo /etc/init.d/mysqld start
经验案例
假设我们在编译 MySQL 时遇到了以下问题:
问题:在编译过程中,提示找不到 libmariadbclient-dev 包。
解决方案:由于 libmariadbclient-dev 包不是 MySQL 依赖项,我们可以通过以下步骤解决:

- 下载
libmariadbclient-dev包的源码:
wget https://dev.mysql.com/get/mariadb-10.5.6.tar.gz tar -zxvf mariadb-10.5.6.tar.gz -C /usr/local/src/
进入源码目录,编译安装:
cd /usr/local/src/mariadb-10.5.6 ./configure --with-ssl make && make install
在编译 MySQL 时,添加以下参数:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DSYSCONFDIR=/etc \ -DWITH_INNODB_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ -DWITH_BZIP2=system \ -DWITH_READLINE=system \ -DWITH_MYSQLD_MAINTAINER_MODE=1 \ -DWITH_MYSQL_CLIENT=builtin \ -DWITH_MYSQLD=system \ -DWITH_MYSQLD_PLUGIN=system \ -DWITH_CLIENT=builtin \ -DWITH_EMBEDDED_SERVER=1 \ -DWITH_DEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_LIBMARIADBCLIENT=/usr/local/mariadb-10.5.6
FAQs
Q1:在编译 MySQL 时,提示找不到 ncurses 库。
A1:请检查系统中是否已安装 libncurses5-dev 和 libncursesw5-dev 包,如果没有安装,可以使用以下命令进行安装:
sudo apt-get install -y libncurses5-dev libncursesw5-dev
Q2:MySQL 服务无法启动。
A2:请检查 /etc/my.cnf 文件中的配置是否正确,如果配置错误,请修改相应的参数,然后重启 MySQL 服务。
文献权威来源
《MySQL 官方文档》:https://dev.mysql.com/doc/
《MySQL 官方教程》:https://dev.mysql.com/doc/refman/5.7/en/