源码安装MySQL5.6.37详细教程

源码安装mysql5.6.37

时间:2025-06-20 16:32


源码安装MySQL5.6.37的详细指南 在数据库管理领域,MySQL凭借其开源性、高性能和易用性,成为了众多开发者和企业的首选

    本文将详细介绍如何在Linux环境下,通过源码方式安装MySQL5.6.37版本

    这一过程将涵盖从系统准备、源码下载、编译安装到服务启动和安全配置的完整流程,确保你能够顺利搭建起一个稳定且安全的MySQL数据库环境

     一、系统准备 在开始之前,请确保你的Linux系统已经安装了必要的编译工具和依赖库

    以CentOS为例,你可以通过以下命令安装这些依赖: bash yum groupinstall Development Tools -y yum install cmake gcc-c++ ncurses-devel bison -y 此外,由于MySQL5.6对系统资源有一定的要求,建议你的服务器至少有2GB的内存和足够的磁盘空间

    同时,创建一个专用的逻辑卷用于存放MySQL数据,可以提高数据库的性能和安全性

    假设你已经创建了一个挂载在`/data`的逻辑卷,接下来我们将在此目录下创建MySQL的数据存放目录: bash mkdir -p /data/mysqldata 为了安全起见,建议创建一个专门的MySQL用户来运行MySQL服务: bash useradd mysql -s /sbin/nologin -M chown -R mysql:mysql /data/mysqldata 二、下载并解压源码包 接下来,我们需要从MySQL官方网站下载MySQL5.6.37的源码包

    请访问【MySQL官方下载页面】(https://dev.mysql.com/downloads/mysql/5.6.htmldownloads),找到适用于Linux系统的源码包(如`mysql-5.6.37.tar.gz`),并通过wget命令下载: bash wget https://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.37.tar.gz 下载完成后,解压源码包到指定目录(如`/usr/local/src`): bash tar -xf mysql-5.6.37.tar.gz -C /usr/local/src/ 三、编译安装 进入解压后的源码目录,并使用cmake进行配置

    cmake配置过程中,你可以指定MySQL的安装路径、字符集、存储引擎等选项

    以下是一个典型的cmake配置命令: bash cd /usr/local/src/mysql-5.6.37 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_READLINE=ON -DSYSCONFDIR=/data/mysqldata/3306 -DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock 配置完成后,使用make命令进行编译,并使用make install命令进行安装: bash make && make install 安装完成后,将MySQL的安装目录更改为mysql用户所有: bash chown -R mysql:mysql /usr/local/mysql 四、设置环境变量和配置文件 为了方便使用MySQL命令,我们需要将MySQL的bin目录添加到系统的PATH环境变量中

    编辑`/etc/profile`文件,并添加以下内容: bash export PATH=/usr/local/mysql/bin:$PATH 然后,使环境变量生效: bash source /etc/profile 接下来,我们需要为MySQL创建配置文件

    在`/data/mysqldata/3306/`目录下创建一个名为`my.cnf`的配置文件,并添加以下内容: ini 【client】 port =3306 socket = /data/mysqldata/3306/mysql.sock 【mysqld】 port =3306 user = mysql socket = /data/mysqldata/3306/mysql.sock pid-file = /data/mysqldata/3306/mysql.pid basedir = /usr/local/mysql datadir = /data/mysqldata/3306/data tmpdir = /data/mysqldata/3306/tmp open_files_limit =10240 explicit_defaults_for_timestamp =1 sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 其他配置参数... 请根据你的实际需求调整配置文件中的参数

     五、初始化数据库 在启动MySQL服务之前,我们需要使用`mysql_install_db`脚本来初始化数据库

    这个脚本位于MySQL的安装目录下的`scripts`目录中: bash cd /usr/local/mysql scripts/mysql_install_db --datadir=/data/mysqldata/3306/data --basedir=/usr/local/mysql 如果初始化过程中遇到错误,请检查配置文件和目录权限是否正确

     六、启动MySQL服务 初始化完成后,我们可以使用`mysqld_safe`命令来启动MySQL服务: bash mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf & 你可以使用`netstat`命令来检查MySQL服务是否成功启动: bash netstat -lnt | grep3306 如果看到3306端口正在监听,说明MySQL服务已经成功启动

     七、安全配置 最后,我们需要对MySQL进行安全配置

    首先,登录到MySQL控制台: bash mysql -u root 由于这是第一次登录,你不需要输入密码

    登录后,执行以下命令来设置root用户的密码: sql SET PASSWORD FOR root@localhost = PASSWORD(你的密码); FLUSH PRIVILEGES; 然后,删除不必要的用户和数据库,并限制root用户的访问权限

    这可以通过执行以下SQL命令来完成: sql DELETE FROM mysql.user WHERE(user, host) NOT IN(SELECT root, localhost); FLUSH PRIVILEGES; 此外,你还可以根据需要调整MySQL的其他安全设置,如禁用远程root