在 Linux 系统上安装 MySQL,通常有多种方法,包括使用包管理器(如`apt` 或`yum`)、下载预编译的二进制文件,或者从源代码编译安装
本文将重点介绍如何通过源代码编译安装 MySQL,并使用`make` 命令进行构建
这种方法虽然相对复杂,但提供了最大的灵活性和定制能力
一、准备工作 在进行安装之前,请确保你的系统满足以下基本要求: 1.Linux 操作系统:本文适用于大多数主流 Linux 发行版,如 Ubuntu、CentOS、Debian 等
2.必要的开发工具:包括编译器(如 GCC)、`make` 工具、CMake(MySQL5.7 及以后版本需要)、以及其他构建依赖
3.足够的磁盘空间和内存:编译 MySQL 需要一定的磁盘空间和内存资源
二、安装必要的依赖 根据你的 Linux 发行版,安装所需的依赖项
以下是一些常见发行版的安装命令: Ubuntu/Debian bash sudo apt update sudo apt install build-essential cmake libncurses5-dev libssl-dev bison CentOS/RHEL bash sudo yum groupinstall Development Tools sudo yum install cmake ncurses-devel openssl-devel bison 三、下载 MySQL源代码 访问 MySQL官方网站(https://dev.mysql.com/downloads/mysql/),选择适合你的操作系统的源代码包下载
通常,你会下载一个`.tar.gz`格式的压缩包
下载完成后,解压缩源代码包: bash tar -zxvf mysql-X.Y.Z.tar.gz cd mysql-X.Y.Z 其中`X.Y.Z` 代表你下载的 MySQL 版本号
四、配置 MySQL 构建环境 从 MySQL5.5 版本开始,官方推荐使用 CMake而不是传统的`configure` 脚本来配置构建环境
CMake提供了更灵活和强大的配置选项
1.创建构建目录:为了避免在源代码目录中生成大量编译文件,建议创建一个单独的构建目录
bash mkdir build cd build 2.运行 CMake 配置:在构建目录中运行 CMake,指定源代码目录和其他配置选项
以下是一个基本的 CMake 命令示例: bash cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST=../../boost 这里`-DDOWNLOAD_BOOST=1` 表示自动下载并使用 Boost 库(MySQL 需要 Boost 库进行编译),`-DWITH_BOOST=../../boost` 指定 Boost 库的位置(如果你已经手动下载了 Boost 并解压到了指定位置)
根据你的需求,你可能需要添加或修改其他 CMake 选项
注意:如果你的系统上没有 Boost 库,并且不想从网上下载,你可以手动下载 Boost源代码包,解压后指定给 CMake
3.查看配置结果:CMake 运行完成后,它会输出配置结果,包括哪些功能被启用或禁用
确保所有关键功能都按预期配置
五、编译 MySQL 在构建目录中,使用`make` 命令开始编译 MySQL
编译过程可能需要一些时间,具体时间取决于你的硬件配置和选择的编译选项
bash make 如果编译过程中出现错误,检查是否有缺失的依赖项或配置错误,并相应地解决问题
六、安装 MySQL 编译成功后,使用`make install` 命令将 MySQL 安装到系统目录中
通常,默认的安装目录是`/usr/local/mysql`
bash sudo make install 七、配置 MySQL 服务 安装完成后,需要进行一些额外的配置才能启动 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 3.初始化数据库:在 MySQL 5.7 及以后版本中,使用`mysqld --initialize` 命令初始化数据目录
bash sudo bin/mysqld --initialize --user=mysql 注意:该命令会输出一个临时密码,用于首次登录 MySQL
请务必记录这个密码
4.设置 MySQL 服务:为了方便管理 MySQL 服务,可以创建一个 systemd 服务单元文件(以 CentOS/RHEL 为例)
创建一个名为`mysqld.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】 WantedBy=multi-user.target 将服务文件复制到 systemd 目录,并重新加载 systemd 配置: bash sudo cp mysqld.service /etc/systemd/system/ sudo systemctl daemon-reload 5.启动 MySQL 服务: bash sudo systemctl start mysqld 6.设置 MySQL 服务开机自启: bash sudo systemctl enable mysqld 八、安全配置和初始登录 1.使用临时密码登录 MySQL: bash /usr/local/mysql/bin/mysql -u root -p 输入初始化时生成的临时密码
2.运行安全配置脚本:登录后,运行 `mysql_secure_installation`脚本来设置新的 root 密码、删除匿名用户、禁止 root远程登录等安全操作
sql ALTER USER root@l