对于需要高度定制或深入了解其内部机制的用户来说,源码安装MySQL成为了一种理想的选择
本文将详细介绍如何在Linux环境下通过源码方式安装MySQL5.6版本,涵盖从安装前准备、源码编译安装、初始化与配置、启动与管理服务,到安全设置与验证的完整流程
一、安装前准备 在进行源码安装之前,我们需要做好一系列准备工作,以确保安装过程顺利进行
1. 安装依赖环境 源码编译MySQL需要依赖一系列编译工具和库文件
在CentOS或RHEL系统上,可以通过以下命令安装这些依赖: bash yum install -y gcc gcc-c++ cmake ncurses-devel bison perl openssl-devel libaio 这些依赖项的作用如下: -gcc和gcc-c++:C和C++编译器,用于编译MySQL源码
-cmake:构建系统,用于生成Makefile
-ncurses-devel:提供终端处理库,用于MySQL的命令行界面
-bison:语法分析器生成器,用于解析SQL语句
-perl:脚本语言,用于处理MySQL安装和配置过程中的一些任务
-openssl-devel:提供SSL加密库,用于MySQL的加密通信
-libaio:Linux异步I/O库,提高MySQL的I/O性能
2. 创建专用用户和目录 出于安全考虑,MySQL通常以非root用户身份运行
我们可以创建一个专门的mysql用户和用户组,并为其分配数据目录
bash groupadd mysql useradd -r -g mysql -M -s /sbin/nologin mysql mkdir -p /data/mysql chown -R mysql:mysql /data/mysql 这里,`groupadd mysql`命令创建了一个名为mysql的用户组;`useradd`命令创建了一个名为mysql的用户,并将其添加到mysql组中,同时指定该用户不允许登录系统(`-s /sbin/nologin`),并且不创建家目录(`-M`)
`mkdir -p /data/mysql`命令创建了MySQL的数据目录,而`chown -R mysql:mysql /data/mysql`命令将该目录的所有权更改为mysql用户和组
二、源码编译安装 接下来,我们从MySQL官网下载源码包,并进行解压、配置、编译和安装
1. 下载并解压源码包 访问MySQL的官方下载页面,找到MySQL5.6版本的源码包(如mysql-5.6.50.tar.gz),并通过wget命令下载: bash wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.50.tar.gz tar -zxvf mysql-5.6.50.tar.gz cd mysql-5.6.50 2. 配置编译参数 使用cmake命令配置编译参数
这些参数指定了MySQL的安装位置、数据目录、配置文件路径、字符集等关键信息
bash cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_SSL=system -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -CMAKE_INSTALL_PREFIX:指定MySQL的安装目录
-MYSQL_DATADIR:指定MySQL数据文件的存放位置
-SYSCONFDIR:指定MySQL配置文件的路径
-WITH_INNOBASE_STORAGE_ENGINE:启用InnoDB存储引擎
-WITH_SSL:启用SSL加密通信
-DEFAULT_CHARSET和DEFAULT_COLLATION:指定默认字符集和排序规则
3.编译并安装 配置完成后,使用make命令进行编译,并使用make install命令进行安装
bash make && make install 这个过程可能需要一些时间,具体取决于你的系统性能和源码包的大小
三、初始化与配置 安装完成后,我们需要对MySQL进行初始化,并配置一些关键参数
1.初始化数据库 使用mysql_install_db脚本初始化数据库
这个脚本会创建系统表和其他必要的数据库结构
bash cd /usr/local/mysql scripts/mysql_install_db --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql 2. 配置权限和配置文件 更改MySQL安装目录的所有权,以确保mysql用户有权访问
同时,复制默认的配置文件到/etc目录,并根据需要进行修改
bash chown -R mysql:mysql /usr/local/mysql cp support-files/my-default.cnf /etc/my.cnf 在/etc/my.cnf文件中,你可以根据需要修改端口、字符集、日志文件路径等参数
3. 设置环境变量 为了方便在命令行中使用mysql命令,我们需要将MySQL的bin目录添加到PATH环境变量中
bash echo export PATH=/usr/local/mysql/bin:$PATH ] /etc/profile source /etc/profile 这样,你就可以在任何终端中直接使用mysql命令了
四、启动与管理服务 配置完成后,我们可以启动MySQL服务,并设置它随系统启动而自动启动
1. 配置启动脚本 复制MySQL的启动脚本到/etc/init.d目录,并赋予执行权限
然后,使用chkconfig命令将MySQL添加到系统服务中,并设置为开机启动
bash cp support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on 2. 启动服务 使用service命令或直接执行启动脚本启动MySQL服务
bash service mysqld start 或者 /etc/init.d/mysqld start 你可以使用`service mysqld status`命令检查MySQL服务的运