Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >2015博客升级记(四):CentOS 7.1编译安装MySQL5.7.7rc

2015博客升级记(四):CentOS 7.1编译安装MySQL5.7.7rc

作者头像
typecodes
发布于 2024-03-29 06:15:21
发布于 2024-03-29 06:15:21
14000
代码可运行
举报
文章被收录于专栏:typecodestypecodes
运行总次数:0
代码可运行

这是《2015年博客升级记》系列文章的第四篇,主要记录在Linux系统中如何编译安装MySql数据库

1 创建mysql用户和用户组,并下载MySQL5.7.7 Release Candidate版本

首先创建一个名为mysql没有登录权限的用户和一个名为mysql的用户组,然后去mysql官网下载MySQL5.7.7rc版本。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#######新建mysql用户和mysql组
[root@typecodes ~]# groupadd -r mysql && useradd -r -g mysql -s /bin/false -M mysql

######从官网或者博客备份地址下载MySQL5.7.7 Release Candidate版本
[root@typecodes ~]# wget -c http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.7-rc.tar.gz
[root@typecodes ~]# wget -c http://git.typecodes.com/libs/mysql/mysql-5.7.7-rc.tar.gz
[root@typecodes ~]# md5sum mysql-5.7.7-rc.tar.gz        [MD5校验]
36a96021a93ca236e76f5c90ae19cd44  mysql-5.7.7-rc.tar.gz
######开始解压MySQL5.7.7
[root@typecodes ~]# tar -zxf mysql-5.7.7-rc.tar.gz && cd mysql-5.7.7-rc
######下载gmock:google的c++mock框架,从mysql 5.6开始支持
[root@typecodes mysql-5.7.7-rc]# wget -c http://git.typecodes.com/libs/ccpp/gmock-1.6.0.zip
######将其解压到MySQL5.7.7的source_downloads目录下
[root@typecodes mysql-5.7.7-rc]# unzip gmock-1.6.0.zip -d source_downloads
2 下载编译MySQL5.7.7rc时需要的工具

由于从MySQL5.5版本开始弃用了常规的configure编译方法,所以需要下载CMake编译器、Boost库、ncurses库和GNU分析器生成器bison这4种工具。经过自己的测试发现,MySQL5.7.7rc编译时所需要的Boost库只能是boost 1.57.0版本,低于或者高于这个版本的都会编译失败!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#######CMake编译工具
[root@typecodes ~]# wget -c http://git.typecodes.com/libs/ccpp/cmake-3.2.1.tar.gz
[root@typecodes ~]# tar -zxf cmake-3.2.1.tar.gz && cd cmake-3.2.1
[root@typecodes cmake-3.2.1]# ./configure 
[root@typecodes cmake-3.2.1]# make && make install  [默认安装路径是/usr/local/bin]
[root@typecodes cmake-3.2.1]# cmake --version       [查看cmake版本]
cmake version 3.2.1

CMake suite maintained and supported by Kitware (kitware.com/cmake).
[root@typecodes cmake-3.2.1]# cd ~ && rm -rf cmake-3.2.1*
######也可以直接yum安装CMake2.8.11版本
[root@typecodes ~]# yum -y install cmake

#######Ncurses:提供功能键定义(快捷键),屏幕绘制以及基于文本终端的图形互动功能的动态库。
[root@typecodes ~]# yum -y install ncurses-devel

#######bison:GNU分析器生成器
[root@typecodes ~]# wget -c http://git.typecodes.com/libs/ccpp/bison-3.0.tar.gz
[root@typecodes ~]# tar -zxf bison-3.0.tar.gz && cd bison-3.0/ && ./configure
[root@typecodes bison-3.0]# make && make install
[root@typecodes bison-3.0]# cd ~ && rm -rf bison-3.0*

#######Boost库:一个开源可移植的C++库,是C++标准化进程的开发引擎之一
[root@typecodes ~]# wget -c http://git.typecodes.com/libs/ccpp/boost_1_57_0.tar.bz2
[root@typecodes ~]# tar -jxf boost_1_57_0.tar.bz2 && cd boost_1_57_0/
[root@typecodes boost_1_57_0]# ./bootstrap.sh
[root@typecodes boost_1_57_0]# ./b2 stage threading=multi link=shared
[root@typecodes boost_1_57_0]# ./b2 install threading=multi link=shared
[root@typecodes boost_1_57_0]# cd ~ && rm -rf boost_1_57_0*
3 开始进行MySQL5.7.7rc编译前的配置

准备工作做好后,就开始正式配置MySQL5.7.7rc的安装明细了。注意,操作时一定要先把下面反斜杠“\”后面添加的注释文字去掉!!!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
######使用cmake命令,开始编译MySQL5.7.7rc
[root@typecodes mysql-5.7.7-rc]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \              [MySQL安装的根目录]
-DMYSQL_DATADIR=/mydata/mysql/data  \                   [MySQL数据库文件存放目录]
-DSYSCONFDIR=/etc \                                     [MySQL配置文件所在目录]
-DMYSQL_USER=mysql \                                    [MySQL用户名]      
-DWITH_MYISAM_STORAGE_ENGINE=1 \                        [MySQL的数据库引擎]
-DWITH_INNOBASE_STORAGE_ENGINE=1 \                      [MySQL的数据库引擎]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \                       [MySQL的数据库引擎]
-DWITH_MEMORY_STORAGE_ENGINE=1 \                        [MySQL的数据库引擎]
-DWITH_READLINE=1 \                                     [MySQL的readline library]
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \           [MySQL的通讯目录]
-DMYSQL_TCP_PORT=3306 \                                 [MySQL的监听端口]
-DENABLED_LOCAL_INFILE=1 \                              [启用加载本地数据]
-DENABLE_DOWNLOADS=1 \                                  [编译时允许自主下载相关文件]
-DWITH_PARTITION_STORAGE_ENGINE=1  \
-DEXTRA_CHARSETS=all \                                  [使MySQL支持所有的扩展字符]
-DDEFAULT_CHARSET=utf8 \                                [设置默认字符集为utf8]
-DDEFAULT_COLLATION=utf8_general_ci \                   [设置默认字符校对]
-DWITH_DEBUG=0 \                                        [禁用调试模式]
-DMYSQL_MAINTAINER_MODE=0 \
-DWITH_SSL:STRING=bundled \                             [通讯时支持ssl协议]
-DWITH_ZLIB:STRING=bundled                              [允许使用zlib library]

执行上面的配置命令的结果如下图所示:

MySQL5.7.7rc编译前的配置
MySQL5.7.7rc编译前的配置
4 开始编译和安装MySQL5.7.7rc

使用make命令编译时,会比较吃CPU。博主当时购买的阿里主机是单核1G内存,编译到55%左右时直接卡住,同时无法新建一个终端连接,内存或者CPU已经严重耗尽。在重新购买了一个物理数据盘并划分出一个swap交换空间后,最终还是编译成功了,耗时约4个小时。所以,如果主机内存在1G一下并且没有设置Linux交换空间的,不建议直接编译MySQL5.7.7rc!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@typecodes mysql-5.7.7-rc]# make && make install

下图展示的是make命令执行完毕的情况:

编译MySQL5.7.7rc的make命令执行结果
编译MySQL5.7.7rc的make命令执行结果
编译MySQL5.7.7rc的make命令执行结果
编译MySQL5.7.7rc的make命令执行结果

编译MySQL5.7.7rc对CPU和内存消耗比较大,这里截取了两张使用top命令的图片:

编译MySQL5.7.7rc的make命令执行结果
编译MySQL5.7.7rc的make命令执行结果
编译MySQL5.7.7rc的make命令执行结果
编译MySQL5.7.7rc的make命令执行结果

最后,激动人心的时刻,看到下图就代表已经编译安装好了MySQL5.7.7rc!

安装MySQL5.7.7rc的make install命令执行结果
安装MySQL5.7.7rc的make install命令执行结果
5 查看编译成功后的MySQL安装目录

使用命令查看MySQL的安装目录/usr/local/mysql/下面是否生成了相关目录文件(最重要的当然是bin、sbin和lib目录)。如果lib目录下面没有生成如图所示的.so动态库文件和.a静态库文件,那么说明安装不成功(即使成功了也可能会导致php进程无法找到mysql的相关库文件)。

初始化MySQL自身的数据库
初始化MySQL自身的数据库
6 开始设置MySQL的配置文件my.cnf

先把编译生成的my.cnf文件备份,然后把《CentOS系统MySQL的配置文件my.cnf》文中整理的MySQL的配置文件my.cnf上传到服务器/etc/目录下即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@typecodes mysql]# mv /etc/my.cnf /etc/my.cnfbak
[root@typecodes mysql]# mv  ~/my.cnf  /etc/my.cnf
7 添加mysql的环境变量

将MySQL编译生成的bin目录添加到当前Linux系统的环境变量中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@typecodes mysql]# echo -e '\n\nexport PATH=/usr/local/mysql/bin:$PATH\n' >> /etc/profile && source /etc/profile
8 创建MySQL数据库文件的存放路径以及相关安全配置

在Linux主机上创建一个目录/mydata/mysql/data,用于存放MySQL的数据库文件。同时设置其用户和用户组为之前创建的mysql,权限为777。这样其它用户是无法进行读写的,尽量保证数据库的安全。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@typecodes ~]# mkdir -p /mydata/mysql/data && chown -R root:mysql /usr/local/mysql
[root@typecodes mysql]# chown -R mysql:mysql /mydata/mysql/data
[root@typecodes mysql]# chmod -R go-rwx /mydata/mysql/data
9 初始化MySQL自身的数据库

在MySQL安装目录的\bin\路径下,执行mysqld命令,初始化MySQL自身的数据库。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
######参数user表示用户,basedir表示mysql的安装路径,datadir表示数据库文件存放路径
[root@typecodes bin]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/mydata/mysql/data

执行完后,可以通过[root@typecodes mysql]# ls -lrt /mydata/mysql/data/命令查看是否生成了MySQL自身的数据库文件。

初始化MySQL自身的数据库
初始化MySQL自身的数据库
10 创建MySQL日志存放目录以及设置开机启动

下面配置的MySQL日志存放目录以及权限都是根据前面my.cnf文件写的,也就是两者需要保持一致。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@typecodes ~]# mkdir -p /var/run/mysql && mkdir -p /var/log/mysql
[root@typecodes ~]# chown -R mysql:mysql /var/log/mysql && chown -R mysql:mysql /var/run/mysql
######配置开机自启动
[root@typecodes mysql]# cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
[root@typecodes mysql]# chmod +x /etc/init.d/mysqld     #增加可执行权限
[root@typecodes mysql]# chkconfig --add mysqld      #添加到sysV服务
[root@typecodes mysql]# chkconfig mysqld on
11 启动MySQL服务

在完成上面的操作后,就可以正式使用MySQL服务了。启动MySQL进程服务的命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@typecodes mysql]# mysqld_safe --user=mysql --datadir=/mydata/mysql/data --log-error=/var/log/mysql/error.log &        [直接回车]
[1] 10274
150513 21:28:16 mysqld_safe Logging to '/var/log/mysql/error.log'.
150513 21:28:16 mysqld_safe Starting mysqld daemon with databases from /mydata/mysql/data

######上面这条命令会在后台继续执行,所以直接回车并执行下面这条命令
[root@typecodes mysql]# service mysqld start
Starting MySQL.[  OK  ]                 [启动成功]
[root@typecodes mysql]#

然后使用下面这命令ps -ef | grep mysqlnetstat -tunpl | grep 3306查看MySQL服务进程和端口监听情况:

查看MySQL服务进程和端口监听情况
查看MySQL服务进程和端口监听情况
12 初始化MySQL数据库的root用户密码

Oracle数据库一样,MySQL数据库也默认自带了一个root用户(这个和当前Linux主机上的root用户是完全不搭边的),我们在设置好MySQL数据库的安全配置后初始化root用户的密码。配置过程中,一路输入y就行了。这里只说明下MySQL5.7.7rc版本中,用户密码策略分成低级LOW、中等MEDIUM和超强STRONG三种,推荐使用中等MEDIUM级别!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@typecodes mysql]# mysql_secure_installation
............省略前面的过程............
Press y|Y for Yes, any other key for No: y   【需要修改密码,所以输入y】

There are three levels of password validation policy:

LOW    Length >= 8     【只需要长度大于或等于8MEDIUM Length >= 8, numeric, mixed case, and special characters   【还需要包含数字、大小写和类似于@#%等特殊字符】
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file    【还需要包含字典文件】
............省略剩下的过程............
13 将MySQL数据库的动态链接库共享至系统链接库

一般MySQL数据库还会被类似于PHP等服务调用,所以我们需要将MySQL编译后的lib库文件添加至当前Linux主机链接库/etc/ld.so.conf.d/下,这样MySQL服务就可以被其它服务调用了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@typecodes lib]# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
[root@typecodes lib]# ldconfig          [使生效]
[root@typecodes lib]# ldconfig -v |grep mysql       [查看效果]
ldconfig: Can't stat /libx32: No such file or directory
ldconfig: Path `/usr/lib' given more than once
ldconfig: Path `/usr/lib64' given more than once
ldconfig: Can't stat /usr/libx32: No such file or directory
/usr/lib64/mysql:
        libmysqlclient.so.18 -> libmysqlclient.so.18.0.0
/usr/local/mysql/lib:
        libmysqlclient.so.20 -> libmysqlclient_r.so.20.0.0
14 创建其它MySQL数据库用户

使用MySQL数据库root管理员用户登录MySQL数据库后,可以管理数据库和其他用户了。这里演示创建一个名为typecodes的MySQL用户(密码为@typecodes2014.com)和一个名为typecodes的数据库。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@typecodes mysql]# mysql -uroot -p密码

######登录成功后,创建typecodes数据库,并设置字符集和字符校
mysql> CREATE DATABASE `typecodes` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

######创建名为typecodes用户,并让它拥有typecodes数据库所有的权限
mysql> grant all privileges on typecodes.* to typecodes@localhost identified by '@typecodes2014.com';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit;            [创建完毕,root用户退出]
15 错误分析

这里特意分析了一些MySQL安装过程中可能出现的错误情况,详见文章《MySQL编译安装时常见错误分析》

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-06-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
mysql 安装5.7
##在CentOS7中编译安装MySQL 5.7.21. 依赖和源码包 安装相关的依赖:
匿名用户的日记
2021/12/14
7550
CentOS 7源码编译安装MySQL 8.0
[root@mysql etc]# cat /etc/RedHat-release CentOS Linux release 7.3.1611 (Core)
星哥玩云
2022/08/16
1.3K0
CentOS6.7下使用 cmake编译安装MySQL5.5.32
cmake是一个跨平台的开源元构建系统,可以构建、测试和打包软件。它可以用来支持多种本地构建环境,包括make,苹果的xcode和微软的Visual Studio,本篇文章将在CentOS6.7下使用 cmake编译安装MySQL5.5.32。
用户9042463
2021/09/30
8430
ubuntu编译安装mysql
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.18.tar.gz
用户1685462
2021/07/28
2.9K0
部署MySQL 5.7
注:在安装MySQL前需要卸载掉当前已有的mariadb,然后需要安装gcc环境 1、安装cmake
小手冰凉
2020/04/12
7890
MySQL安装
误入歧途
2024/05/08
1430
Centos6源码编译安装Mysql5.7.17教程
一、卸载旧版本mysql(若无请跳过) 1.使用下面的命令检查是否安装有mysql rpm -qa|grep -i mysql
Lcry
2022/11/29
9270
Centos6源码编译安装Mysql5.7.17教程
编译安装MySQL5.7
在MySQL官网下载你需要的二进制包版本。 官网下载链接:https://downloads.mysql.com/archives/community/ 本文是以mysql-5.7.28版本为例,所以也可以直接下载我这个版本。 链接:https://cdn.mysql.com/archives/mysql-5.7/mysql-boost-5.7.28.tar.gz
云计算小黑
2022/12/28
1.2K0
编译安装MySQL5.7
Linux CentOS6.5下编译安装MySQL 5.6.16【给力详细教程】
从http://dev.mysql.com/downloads/mysql/直接下载源码,解压mysql-5.6.16.tar.gz(http://www.quseqi.com/这个网站就是用的5.6.16版本)
李维亮
2021/07/09
6270
CentOS源码编译并安装MySQL 5.7.29
如何从CentOS源代码编译和安装MySQL 5.7.29呢,下面做个简单明了的过程记录,希望对大家有用。
星哥玩云
2022/08/18
9160
CentOS源码编译并安装MySQL 5.7.29
CentOS7(Linux)源码安装MySQL5.7.30
软件应用最重要的就是数据库了,可是还有小伙伴不会在Linux上安装MySQL数据库,今天就来讲讲如何在CentOS7环境使用源码进行安装MySQL5.7.30。
一个正经的程序员
2022/04/11
6950
CentOS7(Linux)源码安装MySQL5.7.30
MySQL编译安装时常见错误分析
这篇文章主要是关于MySQL在编译安装时,可能出现的错误的解决方法。MySQL正确的编译安装操作见前文《2015博客升级记(四):CentOS 7.1编译安装MySQL5.7.7rc》。
typecodes
2024/03/29
3420
MySQL编译安装时常见错误分析
centos6.8下安装部署LNMP-(nginx1.8.0+php5.6.10+mysql5.6.12)
在平时运维工作中,经常需要用到LNMP应用框架。 以下对LNMP环境部署记录下: 1)前期准备:为了安装顺利,建议先使用yum安装依赖库 [root@opd ~]#yum install -y make cmake gcc gcc-c++ autoconf automake libpng-devel libjpeg-devel zlib libxml2-devel ncurses-devel bison libtool-ltdl-devel libiconv libmcrypt mhash mcrypt l
洗尽了浮华
2018/01/22
7280
MYSQL5.6&5.7编译安装
此文只是帮助刚开始接触MYSQL的同学安装。可能会因为操作系统环境不一样,缺一些包,根据报错修复即可。装好后可以打包成RPM包,方便后续安装。 CMake编译工具 下载地址:https://cmake.org/download/ [root@shell ~]# wget -c https://cmake.org/files/v3.9/cmake-3.9.1.tar.gz [root@shell ~]# tar -zxf cmake-3.2.1.tar.gz && cd cmake-3.9.1 [root@s
MySQL轻松学
2018/03/09
1.1K0
centos-6.5安装部署LNMP环境
安装部署前,确保安装了gcc和gcc-c++ 系统信息: [root@zww ~]# cat /etc/redhat-release CentOS release 6.5 (Final) [root@zww ~]# uname -r 2.6.32-573.22.1.el6.x86_64 1.安装nginx: 安装依赖库:yum -y install zlib zlib-devel openssl openssl-devel pcre-devel 官网下载源码包 wget http://nginx.org/d
用户1679793
2018/04/28
9970
CentOS7.2安装Mysql5.7.13
(4)更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也可以选择使用MySQL数据库。
L宝宝聊IT
2018/08/16
1.2K0
CentOS7.2安装Mysql5.7.13
最全的mysql 5.7.13 安装配置方法图文教程(linux)
安装文件下载目录:/data/software Mysql目录安装位置:/usr/local/mysql 数据库保存位置:/data/mysql 日志保存位置:/data/log/mysql
用户1685462
2021/07/20
4310
新手001|CentOS7下源码安装MySQL5.7.6+
MySQL 安装方式分为: 源码安装,相应系统发行包安装(如 rpm, yum, apt-get 等)。生产中比较推荐使用二进制安装。 这里给大家推荐一篇源码安装,大家可以了解一下,这个可以用到学习源码之路。
wubx
2019/02/27
9420
MySQL—MHA高可用
如果文章出现不完整,可以去我的个人博客查看,个人博客地址:https://blog.97hjh.cn
小俊丶Eternally
2018/06/21
1.4K0
MySQL—MHA高可用
部署lamp-MySQL安装
中小型数据库,表过大会出现IO性能瓶颈,树明建议单表600万条记录或2G以上就分表
星哥玩云
2022/09/15
9530
相关推荐
mysql 安装5.7
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验