iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >CentOS 7下源码安装MySQL5.6的过程
  • 301
分享到

CentOS 7下源码安装MySQL5.6的过程

2024-04-02 19:04:59 301人浏览 薄情痞子
摘要

本篇内容介绍了“Centos 7下源码安装Mysql5.6的过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所

本篇内容介绍了“Centos 7下源码安装Mysql5.6的过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

目录

准备工作

运行环境

确认要安装的版本

下载mysql

安装Mysql

准备安装环境

编译和安装

配置MySQL

单实例配置

单实例配置方法

添加防火墙

启动MySQL

重启MySQL

多实例配置

什么是多实例

多实例配置方法

创建启动文件

初始化数据库

配置防火墙

启动MySQL

登陆MySQL

重启MySQL

准备工作

运行环境

本文的运行环境如下

系统版本

CentOS 7最小化安装:

linux version 3.10.0-123.el7.x86_64 (builder@kbuilder.dev.centos.org) (GCc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) #1 SMP Mon Jun 30 12:09:22 UTC 2014

mysql版本

mysql-5.6.25


确认要安装的版本

mysql分为开发版本和稳定版本(GA),开发版本拥有最新的特性,但是并不稳定,也没有完全经过测试,可能存在严重的bug,而稳定版本是经过了长时间的测试,消除了具有已知的bug,其稳定性和安全性都得到一定的保障。

对于一个mysql的版本号如:mysql-5.6.1-m1,这个版本号意味着什么呢?
1.对于5.6.1的解释:第一个数字5代表了文件格式,第二个数字6代表了发行级别,第三个数字1代表了版本号。更新幅度较小时,最后的数字会增加,出现了重大特性更新时,第二个数字会增加,文件格式改变时,第一个数字会增加
2. 对于m1的解释:这是用来表明这个mysql版本的稳定性级别的,如果没有这个后缀,那么这个版本就是一个稳定版(GA);如果这个后缀是mN(例如 m1,m2)格式,表明了这个版本加入了一些经过彻底测试的新特性,可以认为这是一个试生产的模具;如果这个后缀是rc,表明了这是一个候选版本,已经修 改了已知的重要bug,但是没有经过足够长时间的使用来确认所有的bug已经被修复。

一旦选择了版本号,就要选择使用哪个发行版,你可以使用二进制发行版如RPM包或Zip压缩包等,但是如果你要实现如下的功能,就要选择源码安装(本文正是选择源码安装的方式):
1.l把mysq安装到指定位置
2.l使用mysql的一些特性(标准的二进制版本中并没有这些特性)如:tcp封包支持,调试mysql
3.二进制版本中默认支持所有的字符集,但你可以在编译安装源码时指定字符集,从而使得安装的mysql更小

下载MySQL

在这里下载mysql:Http://dev.mysql.com/downloads/mysql/

我选择的是这个:

CentOS 7下源码安装MySQL5.6的过程

CentOS 7下源码安装MySQL5.6的过程

下载完后需要检查文件的MD5,以确认是否从官网下载的原版本(以防被人篡改过该软件)

windows下载后上传到linux后,使用md5sum命令来检查:

[root@localhost src]# md5sum mysql-5.6.25.tar.gz
37664399c91021abe070faa700ecd0ed mysql-5.6.25.tar.gz

可以看出,与上图中的MD5是一致的,如果不一致,就要更换一个镜像地址来下载mysql。

安装MySQL

准备安装环境

首先检查是否已经安装过mysql:

[root@localhost src]# rpm -qa | grep mysql

有的话就卸载掉以前安装的mysql:

[root@localhost src]# rpm -e --nodeps xxx(xxx是搜索结果)

并删除所有的相关文件:

/etc/my.cnf

编译和安装

安装编译代码所需要的包

[root@localhost src]# yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel perl-Data-Dumper net-tools

解压安装包并编译安装

[root@localhost src]# tar xvf mysql-5.6.25.tar.gz
[root@localhost src]# cd mysql-5.6.25
[root@localhost mysql-5.6.25]#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=/var/lib/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

CentOS 7下源码安装MySQL5.6的过程

编译成功

[root@localhost src]# make && make install

至此,mysql安装完成

配置MySQL

检查系统是否已经有mysql用户,如果没有则创建

[root@localhost mysql-5.6.25]# cat /etc/passwd | grep mysql
[root@localhost mysql-5.6.25]# cat /etc/group | grep mysql

创建mysql用户(但是不能使用mysql账号登陆系统)

[root@localhost mysql-5.6.25]# groupadd mysql -s /sbin/nologin
[root@localhost mysql-5.6.25]# useradd -g mysql mysql

修改权限

[root@localhost mysql-5.6.25]# chown -R mysql:mysql /usr/local/mysql

至此,mysql安装完毕

下面有两种配置方式,推荐按照多实例配置的方式

单实例配置

单实例配置方法

进入安装路径

[root@localhost mysql-5.6.25]# cd /usr/local/mysql

进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表

[root@localhost mysql]# scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!

注意:在CentOS 7版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。

在使用"yum update"更新系统后,需要检查下/etc目录下是否会多出一个my.cnf,如果多出,将它重命名成别的。否则,MySQL将使用这个配置文件启动,可能造成无法正常启动等问题。

添加防火墙

[root@localhost mysql]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@localhost mysql]# firewall-cmd --reload
 

启动mysql

添加服务,拷贝服务脚本到init.d目录,并设置开机启动

[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysql
[root@localhost mysql]# chkconfig mysql on
[root@localhost mysql]# service mysql start --启动MySQL

查看mysql是否启动成功

[root@localhost mysql]# netstat -lntp | grep 3306

如果mysql没有启动成功,到目录/usr/local/mysql/data下查看错误日志

[root@localhost data]# tail localhost.localdomain.err (localhost.localdomain是主机名)

如果没有生成日志目录,则mysql安装没有成功(再重新编译安装一次)

重启mysql

首先杀死mysql进程

[root@localhost 3306]# pkill mysqld

然后检查是否已经杀死mysql进程

[root@localhost 3306]# netstat -lntp | grep 3306

此时shell没有任何输出,表明已经杀死了mysql进程

然后重启mysql并再次检查是否启动成功

[root@localhost 3306]# service mysql start
[root@localhost 3306]# netstat -lntp | grep 3306

多实例配置

什么是多实例

简单地说,就是在一台机器上开启多个不同的服务端口,运行多个mysql服务进程,这些服务进程通过不同Socket监听不同服务端口来提供各自的服务。

这些mysql多实例公用一套mysql安装程序,使用不同的my.cnf配置文件、启动程序、数据文件,在提供服务时,多实例在逻辑上看起来是各自独立的,多个实例之间根据配置文件的设定值,来取得相关服务器的硬件资源

多实例配置方法

在本文中,通过在mysql上开启两个端口(3306和3307来配置多实例,因为下面的主从同步要使用这两个端口来模拟)

创建目录(log目录是存放mysql日志的地方)

[root@localhost mysql]# mkdir -p /data/{3306,3307}/data
[root@localhost mysql]# mkdir -p /data/{3306,3307}/log

在/data/3306中新建my.cnf

[root@localhost mysql]# cd /data/3306
[root@localhost mysql]# vim my.cnf

把如下内容拷贝到该文件中 

[client]
port = 3306
socket = /data/3306/mysql.sock

[mysqld]
port=3306
socket = /data/3306/mysql.sock
pid-file = /data/3306/data/mysql.pid
basedir = /usr/local/mysql
datadir = /data/3306/data
server-id=1
#log-bin=mysql-bin
#log-bin-index= mysql-bin.index

# LOGGING
log_error=/data/3306/log/mysql-error.log
slow_query_log_file=/data/3306/log/mysql-slow.log
slow_query_log=1

同样地,在/data/3307中新建my.cnf

[root@localhost mysql]# cd /data/3307
[root@localhost mysql]# vim my.cnf

把如下内容拷贝到该文件中(把上面的3306改为3307,还有server-id的值)

[client]
port = 3307
socket = /data/3307/mysql.sock

[mysqld]
port=3307
socket = /data/3307/mysql.sock
pid-file = /data/3307/data/mysql.pid
basedir = /usr/local/mysql
datadir = /data/3307/data
server-id=3
#log-bin=mysql-bin
#log-bin-index= mysql-bin.index

# LOGGING
log_error=/data/3307/log/mysql-error.log
slow_query_log_file=/data/3307/log/mysql-slow.log
slow_query_log=1

检查一下目录结构,看看有没有把文件放错地方

[root@localhost 3307]# tree /data
/data
├── 3306
│ ├── data
│ ├── log
│ └── my.cnf

└── 3307
│ ├── data
│ ├── log
│ └── my.cnf

创建启动文件

在/data/3306中新建mysql启动文件

[root@localhost mysql]# cd /data/3306
[root@localhost mysql]# vim mysql

把如下内容拷贝到该文件中

#!/bin/sh
port=3306
mysql_user="root"
mysql_pwd=""
CmdPath="/usr/local/mysql/bin"

#startup function

function_start_mysql()
{
printf "Starting MySQL...\n"
/bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 > /dev/null &
}

#stop function

function_stop_mysql()
{
printf "Stoping MySQL...\n"
${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown
}

#restart function

function_restart_mysql()
{
printf "Restarting MySQL...\n"
function_stop_mysql
sleep 2
function_start_mysql
}

case $1 in
start)
function_start_mysql
;;

stop)
function_stop_mysql
;;

restart)
function_restart_mysql
;;
*)

printf "Usage: /data/${port}/mysql {start|stop|restart}\n"
esac

同理,在/data/3307中新建mysql启动文件

[root@localhost mysql]# cd /data/3307
[root@localhost mysql]# vi mysql


把如下内容拷贝到该文件中

#!/bin/bash

port=3307
mysql_user="root"
mysql_pwd=""
CmdPath="/usr/local/mysql/bin"

#startup function

function_start_mysql()
{
printf "Starting MySQL...\n"
/bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 > /dev/null &
}

#stop function

function_stop_mysql()
{
printf "Stoping MySQL...\n"

${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown
}

#restart function

function_restart_mysql()
{
printf "Restarting MySQL...\n"

function_stop_mysql
sleep 2
function_start_mysql
}

case $1 in
start)
function_start_mysql
;;
stop)
function_stop_mysql
;;
restart)
function_restart_mysql
;;
*)
printf "Usage: /data/${port}/mysql {start|stop|restart}\n"
esac

修改文件拥有者和权限

[root@localhost 3307]# chown -R mysql:mysql /data

[root@localhost 3307]# find /data -name mysql -exec chmod 700 {} \;


添加mysql启动路径

[root@localhost 3307]# echo 'export PATH=$PATH:/usr/local/mysql/bin' >>/etc/profile

[root@localhost 3307]# source /etc/profile

[root@localhost 3307]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

可以看到mysql路径已经添加到了启动路径中

初始化数据库

[root@localhost scripts]# cd /usr/local/mysql/scripts

[root@localhost scripts]# ./mysql_install_db --defaults-file=/data/3306/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data

[root@localhost scripts]# ./mysql_install_db --defaults-file=/data/3307/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307/data

配置防火墙

[root@localhost scripts]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success

[root@localhost scripts]# firewall-cmd --zone=public --add-port=3307/tcp --permanent
success

[root@localhost scripts]# firewall-cmd --reload
success

启动mysql

分别启动两个端口

[root@localhost scripts]# /data/3306/mysql start
Starting MySQL...

[root@localhost scripts]# /data/3307/mysql start
Starting MySQL...

[root@localhost scripts]# netstat -lntp | grep 330
tcp6 0 0 :::3306 :::* LISTEN 33556/mysqld
tcp6 0 0 :::3307 :::* LISTEN 34204/mysqld

可以看到两个端口都已经启动成功

登陆MySQL

刚安装完的mysql是没有登陆密码的

[root@localhost scripts]# mysql -S /data/3306/mysql.sock

如果不成功,检查/data/3306/log目录下的mysql-error.log日志,逐一排除错误

如果登陆成功,下面就修改登录密码(不建议在shell环境下修改密码,否则别人只要查看命令历史就能看到密码(前提是你没有情况命令历史))

mysql> update mysql.user set passWord=password("123456") where user='root';
mysql> flush privileges;

同理,使用上面的方法修改3307的登陆密码

要把上面更改后的密码写回到mysql的启动文件中(否则每次启动、关闭、重启mysql都要输入密码)

[root@localhost 3306]# sed -i 's/mysql_pwd=\"\"/mysql_pwd=\"123456\"/g' /data/3306/mysql
[root@localhost 3306]# sed -i 's/mysql_pwd=\"\"/mysql_pwd=\"123456\"/g' /data/3307/mysql

注意把上面的123456改为设置的密码

重启mysql

[root@localhost 3306]# /data/3306/mysql restart
[root@localhost 3306]# netstat -lntp | grep 330
tcp6 0 0 :::3306 :::* LISTEN 35430/mysqld

可以看到3306端口重启成功,同理可以重启3307端口

至此,mysql-5.6.25在CentOS7上安装完毕

“CentOS 7下源码安装MySQL5.6的过程”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: CentOS 7下源码安装MySQL5.6的过程

本文链接: https://www.lsjlt.com/news/60800.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CentOS 7下源码安装MySQL5.6的过程
    本篇内容介绍了“CentOS 7下源码安装MySQL5.6的过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2022-10-18
  • Linux下源码安装mysql5.6
    1、下载mysql到/usr/local/src/cd /usr/local/src/ wget http://distfiles.macports.org/cmake/cmake-2....
    99+
    2022-10-18
  • centos中如何源码安装mysql5.6
    小编给大家分享一下centos中如何源码安装mysql5.6,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2022-10-19
  • 红帽mysql5.6源码编译安装过程
    操作系统more /etc/centos-release CentOS release 6.8 (Final)mysql5.6.44版本获取https://dev.mysql.com/get/Downloa...
    99+
    2022-10-18
  • CentOS6.5下MySQL5.6的安装过程
    这篇文章主要介绍“CentOS6.5下MySQL5.6的安装过程”,在日常操作中,相信很多人在CentOS6.5下MySQL5.6的安装过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2022-10-18
  • centos 7 源码安装openssh的方法
    环境:centos 7.1.1503 最小化安装 依赖包下载: yum -y install lrzsz zlib-devel perl gcc pam-devel 1、安装openssl ,选用最新发布的版本:open...
    99+
    2022-06-04
    centos 7 源码安装openssh centos 7 源码安装
  • CentOS 7如何通过源码编译方式安装TokuDB
    这篇文章主要介绍了CentOS 7如何通过源码编译方式安装TokuDB,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ...
    99+
    2022-10-18
  • CentOS 7 安装 Jenkins过程详解
    通过 Yum 安装 Jenkins 一、安装 # yum 源导入 wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stabl...
    99+
    2022-06-04
    centos 7 安装 jenkins
  • Centos 7 安装RocksDB完整过程
    [root@es1 ~]# yum -y install lrssz git gcc gcc-c++ lz4-devel 已加载插件:fastestmirror Determining fastest mi...
    99+
    2022-10-18
  • CentOS 7源码编译安装Python3.9的案例
    这篇文章将为大家详细讲解有关CentOS 7源码编译安装Python3.9的案例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。安装编译工具和依赖包yum -y install ...
    99+
    2023-06-07
  • MySQL5.6源码编译安装的流程
    本篇内容主要讲解“MySQL5.6源码编译安装的流程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL5.6源码编译安装的流程”吧! ...
    99+
    2022-10-18
  • centos 7 源码安装openssh的方法是什么
    今天就跟大家聊聊有关centos 7 源码安装openssh的方法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。OpenSSH是使用SSH透过计算机网络加密通讯的实现,用来加密...
    99+
    2023-06-28
  • 在CentOS 7上源码编译安装MySQL 5.7
    1.系统环境[root@szlinux02 ~]# uname -r3.10.0-514.el7.x86_64    [root@szlinux02&nbs...
    99+
    2022-10-18
  • CentOS下mysql的安装过程
    这篇文章主要介绍“CentOS下mysql的安装过程”,在日常操作中,相信很多人在CentOS下mysql的安装过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CentOS下mysql的安装过程”的疑惑有所...
    99+
    2023-06-16
  • CentOS 7下ActiveMQ的安装配置
    本篇内容介绍了“CentOS 7下ActiveMQ的安装配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!下载安装wget ...
    99+
    2023-06-05
  • CentOS 7下安装 redis 3.0.6并配置集群的过程详解
    安装依赖 [root@centos7-1 ~]# yum -y install gcc openssl-devel libyaml-devel libffi-devel readline-devel z...
    99+
    2022-06-04
    集群 详解 过程
  • CentOS 6.7下如何通过源码编译安装MySQL 5.6
    这篇文章主要为大家展示了“CentOS 6.7下如何通过源码编译安装MySQL 5.6”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CentOS 6.7下如何通...
    99+
    2022-10-18
  • CentOS 6/7环境下通过yum安装php7的方法
    本文实例讲述了CentOS 6/7环境下通过yum安装php7的方法。分享给大家供大家参考,具体如下: 安装php7已经是现在linux服务器必备的一款工具了,只要做网站都会考虑到使用php7了,下面我们来看Centos...
    99+
    2022-06-04
    CentOS 6 CentOS7 yum 安装php7
  • CentOS 7下yum安装Apache的方法
    这篇文章主要介绍“CentOS 7下yum安装Apache的方法”,在日常操作中,相信很多人在CentOS 7下yum安装Apache的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CentOS 7下yu...
    99+
    2023-06-05
  • Linux下MySQL5.6.12源码安装的详细过程
    本篇内容主要讲解“Linux下MySQL5.6.12源码安装的详细过程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下MySQL5.6.12源码安装的详细过程”吧!安装前的有关描述必备...
    99+
    2023-06-01
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作