千家信息网

MySQL 5.7版本编译安装的详细教程

发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,不知道大家之前对类似MySQL 5.7版本编译安装的详细教程的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完MySQL 5.7版本编译安装的详细教程你一定会有
千家信息网最后更新 2025年11月12日MySQL 5.7版本编译安装的详细教程

不知道大家之前对类似MySQL 5.7版本编译安装的详细教程的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完MySQL 5.7版本编译安装的详细教程你一定会有所收获的。

1、 Mysql概述:


1.1、 Mysql概述

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

双授权政策:开放源代码版本和商业版本。 例如:很多公司出售应用软件,例如 Microsoft、Apple 和 Oracle;如 Red Hat 和 IBM,则通过为其开放源代码软件提供销售支援、托管或咨询等服务来进行赚钱。企业可以通过开放源代码发布他们的软件,也可以同时销售该软件的商业版本。


1.2、 SQL概述

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

从上可以看出我们数据库相关工作职位大概两种:DBD和DBA

dba是数据库管理员database administrator

dbd是数据库开发人员database developer

SQL 是1986年10 月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着,国际标准化组织(ISO)颁布了SQL正式国际标准。1989年4月,ISO提出了具有完整性特征的SQL89标准,1992年11月又公布了SQL92标准,在此标准中,把数据库分为三个级别:基本集、标准集和完全集。


1.3、 SQL语句结构

结构化查询语言包含6个部分

1.3.1、 数据查询语言(DQL)

其语句,也称为"数据检索语句",就是从表中查询数据。

1.3.2、 数据操作语言(DML):

在表中添加,修改和删除数据记录。也称为动作查询语言。

1.3.3、 事务处理语言(TPL):

它由多条sql语句组成的整体,它的语句能确保被DML语句修改的表中的所有记录及时得到更新。

1.3.4、 数据控制语言(DCL):

设置数据库的访问权限。

1.3.5、 数据定义语言(DDL):

在数据库中创建表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。

1.3.6、 指针控制语言(CCL):

它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。


2、 源码安装mysql

2.1、 准备实验环境

2.1.1、 准备源码包

方法一:

上传mysql安装包和boost安装包到我们的云服务器上

[root@cong11 ~]# ls

anaconda-ks.cfg boost_1_59_0.tar.bz2 mysql-5.7.26.tar.gz

方法二:

mysql下载地址:

https://dev.mysql.com/downloads/mysql/5.7.html#downloads

注意:官网提供下载的源码包为mysql-community-5.7.26-1.el7.src.rpm以.src.rpm结尾的rpm包,需要rpm -ivh安装这个包,在当先目录下生成rpmbuild的目录文件,然后在rpmbuild/SOURCES/目录下才是我们.tar.gz结尾的源码包。

2.1.2、 配置本地yum源

[root@cong11 ~]# mount /dev/sr0 /mnt

[root@cong11 ~]# vim /etc/yum.repos.d/centos7.repo

[centos7]

name=CentOS7

baseurl=file:///mnt

enable=1

gpgcheck=0

配置完成后清除/生成 yum缓存

[root@cong11 ~]# yum clean all

[root@cong11 ~]# yum makecache

[root@cong11 ~]# yum -y groupinstall base //该软件包拥有大多命令工具。

卸载boost

MySQL从5.7版本之后,必须有boost支持,建议把系统自带的boost库卸载,使用高版本。

[root@cong11 ~]# yum -y remove boost-*

解压我们上传的boost_1_59_0.tar.bz2到root目录下,待会安装直接指定boost目录。

安装bzip2解压工具,解压缩boost_1_59_0.tar.bz2

[root@cong11 ~]# yum install -y bzip2

[root@cong11 ~]# tar -jxvf boost_1_59_0.tar.bz2

2.1.3、 卸载系统自带的mysql

#rpm -qa | grep -E '(mysql|mariadb)'

#rpm -e mariadb --nodeps

[root@cong11 ~]# yum -y remove mysql*

[root@cong11 ~]# yum -y remove mariadb*


2.2、 安装mysql

2.2.4、 安装MYSQL依赖包

Mysql需要使用cmake来进行编译,所以需要安装cmake,并且5.7版本cmake版本不低于2.8

[root@cong11 ~]# yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel

2.2.5、 添加mysql用户和用户组

[root@cong11 ~]# groupadd mysql

[root@cong11 ~]# useradd -M -s /sbin/nologin -r -g mysql mysql

2.2.6、 创建mysql数据库存放位置并修改目录权限

[root@cong11 ~]# mkdir -p /usr/local/mysql/{data,log}

[root@cong11 ~]# chown -R mysql:mysql /usr/local/mysql/

注意:生产环境中mysql的data数据目录会单独放在一块硬盘中(能够并行写入数据和日志提高效率)

2.2.7、 解压源码包

[root@cong11 ~]# tar -zxvf mysql-5.7.26.tar.gz

2.2.8、 预编译(配置./configure)

预编译需要我们指定安装服务的参数或者模块,还会对编译环境进行测试,只有通过测试,才能进行编译,预编译失败一般都是缺少编译环境GCC或者其他的依赖包,需要我们手工安装完依赖包后,再次进行预编译。

[root@cong11 ~]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DSYSCONFDIR=/etc \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \

-DMYSQL_TCP_PORT=3306 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DDOWNLOAD_BOOST=1 \

-DWITH_BOOST=/root/boost_1_59_0 #指定我们刚才解压的boost目录

官网详细地址:

https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html

参数注释:

DCMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql

DEFAULT_CHARSET:指定云服务器默认字符集,默认latin1

DEFAULT_COLLATION:指定云服务器默认的校对规则,默认latin1_general_ci

ENABLED_LOCAL_INFILE:指定是否允许本地执行LOAD DATA INFILE,默认OFF

WITH_COMMENT:指定编译备注信息

WITH_xxx_STORAGE_ENGINE:指定静态编译到mysql的存储引擎,MyISAM, MERGE,MEMBER以及CSV四种引擎默认即被编译至云服务器,不需要特别指定。

WITHOUT_xxx_STORAGE_ENGINE:指定不编译的存储引擎

SYSCONFDIR:初始化参数文件目录

MYSQL_DATADIR:数据文件目录

MYSQL_TCP_PORT:服务端口号,默认3306

MYSQL_UNIX_ADDR:socket文件路径,默认/tmp/mysql.sock

检测命令执行结果

[root@cong11 ~]# echo $? #0说明上条命令执行成功,其他执行失败

0

2.2.9、 编译

[root@cong11 ~]# make -j $( grep processor /proc/cpuinfo | wc -l)

make -j 4 #注:-j 用来指定CPU核心数,可加快编译速度。

检测命令执行结果

[root@cong11 ~]# echo $?

0

查看云服务器CPU核心数

[root@cong11 ~]# grep processor /proc/cpuinfo | wc -l

4

2.2.10、 安装

[root@cong11 ~]# make install

检测命令执行结果

[root@cong11 ~]# echo $?

0

2.2.11、 修改mysql目录权限

[root@cong11 mysql-5.7.26]# chown -R mysql:mysql /usr/local/mysql/

2.2.12、 生成my.cnf配置文件

备份配置文件文件

[root@cong11 ~]# mv /etc/my.cnf{,.bak} === mv /etc/my.cnf /etc/my.cnf.bak

自行创建my.cnf配置文件

[root@cong11 ~]# vim /etc/my.cnf

[mysqld]

basedir=/usr/local/mysql #mysql安装目录

datadir=/usr/local/mysql/data #mysql数据存放目录

port=3306 #mysql监听端口

socket=/usr/local/mysql/mysql.sock #mysql.sock文件存放目录

symbolic-links=0 #关闭mysql的符号链接

character-set-server=utf8 #指定mysql的字符集为utf8

log-error=/usr/local/mysql/log/mysqld.log #指定mysql的错误日志存放路径

pid-file=/usr/local/mysql/mysqld.pid #mysql的pid文件存放目录

注意:所有my.cnf指定的目录mysql用户都要有读写权限。symbolic-links符号链接支持在别的目录下存放mysql的数据库文件,当我们mysql数据盘满了以后,可以启动symbolic-links=1(允许使用符号链接),把mysql的数据放在别的目录下,然后链接到mysql的datadir目录下。

2.2.13、 生成服务启动脚本

[root@cong11 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

[root@cong11 ~]# chmod +x /etc/init.d/mysqld #给脚本添加执行权限

2.2.14、 添加mysqld开机自启动

[root@cong11 ~]# chkconfig --add mysqld #把mysql添加到系统服务

[root@cong11 ~]# chkconfig mysqld on #把mysql添加到开机自启动

[root@cong11 ~]# chkconfig --list mysqld #查看mysql开机自启动状态

2.2.15、 初始化数据库(创建数据库的系统表)

如果无法初始化先启动mysql

[root@cong11 ~]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql \

--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

2.2.16、 启动服务

[root@cong11 ~]# /etc/init.d/mysqld start

Starting MySQL SUCCESS!

2.2.17、 添加path路径:

添加mysql命令路径到path环境变量中或者把mysql命令路径软连接到path环境变量里已经存在的目录,这样我们可以在系统任意位置直接执行mysql相关命令

[root@cong11 ~]# vim /etc/profile 添加下面2行 在文件的结尾

export MYSQL_HOME=/usr/local/mysql

export PATH=$PATH:$MYSQL_HOME/bin

使修改生效

[root@cong11 ~]# source /etc/profile

或者:

[root@cong11 ~]# ln -s /usr/local/mysql/bin/* /usr/local/bin/

2.2.18、 修改mysql密码:

[root@cong11 ~]# mysqladmin -u root password "123456"

或者登陆到mysql修改密码

[root@cong11 ~]# mysql

mysql> set password for 'root'@'localhost'=password('123456');

2.2.19、 登陆mysql

[root@cong11 ~]# mysql -uroot -p123456

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| sys |

+--------------------+

4 rows in set (0.00 sec)

管理员忘记MySQL密码后怎么操作。

1.首先编写 /etc/my.cnf

skip-grant-tables

2.重启mysql服务

[root@Centos4 ~]# /etc/init.d/mysqld stop

[root@Centos4 ~]# /etc/init.d/mysqld start

3.进入mysql

[root@Centos4 ~]# mysql //此时敲回车可直接进入

mysql> update mysql.user set authentication_string=password('123.com') where user='root';

mysql>FLUSH PRIVILEGES; //刷新用户授权信息

以上表示将root密码更新为123.com

4.再次编辑/etc/my.cnf文件将skip-grant-tables移除


5.再次输入密码即可

[root@Centos4 ~]# mysql -u root -p

看完MySQL 5.7版本编译安装的详细教程这篇文章,大家觉得怎么样?如果想要了解更多相关,可以继续关注我们的行业资讯板块。

数据 数据库 目录 编译 文件 语言 服务 版本 系统 标准 命令 环境 语句 软件 查询 管理 源码 配置 密码 服务器 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发过程是按照项目的 服务器硬盘最多有几种接口 网络安全工程师自学教程 软件开发 信息化服务 合同 软件开发用不到算法 数据库的安全性和完整性联系 网络安全 道德漏洞 网络安全协同联动 企业级云原生数据库 佳伟互联网科技有限公司招聘 网络安全生产月会 数据库中有两个实体集 娄底串口服务器费用 沈阳区块链直销软件开发 方舟服务器刷琥珀管理员 网络安全工作总结机关单位 嘉定区特定软件开发服务密度 软件开发客户建议和意见 绿幕直播间软件开发 苏州网络安全局 sql跨局域网连接数据库 联想服务器集中管理软件 怎么才能知道和平精英的服务器 软件开发公司的机会 数据库的安全使用策略 谷歌服务器通道和任务队列 java上传图片到服务器 网络安全培训服务费用标准 浙江搜道网络技术有限公司怎样 网络安全小组是干什么的
0