基于Centos7的源码和多实例安装MySQL

基于Centos7的多实例安装MySQL

源码安装MySQL

1、先获取软件包
官网下载较慢,可以使用一下网站
地址:http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-boost-5.7.37.tar.gz

[root@centos-node3 ~]# wget -c http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-boost-5.7.37.tar.gz

在这里插入图片描述

2、安装开发工具和开发包

yum install make gcc gcc-c++ cmake bison-devel ncurses-devel -y 
yum install libaio libaio-devel openssl-devel -y 
yum install perl-Data-Dumper -y 
yum install net-tools -y

3、编译安装MySQL

a. 解压:

[root@centos-node3 ~]# tar xf mysql-boost-5.7.37.tar.gz  -C /usr/local/src/

b. 使用cmake编译MySQL
cmake指定编译选项的方式不同于make,其实现方式对比如下:
./configure 变成了 cmake .
./configure --help 等价于 cmake . -LH or ccmake .
注意:如果想清理此前的编译所生成的文件重新编译,则需要使用如下两条命令:
make clean;rm CMakeCache.txt
进入到解压后的目录下:

[root@centos-node3 ~]# cd /usr/local/src/mysql-5.7.37/

创建用户和组:

[root@centos-node3 mysql-5.7.37]# groupadd -r -g 303 mysql
[root@centos-node3 mysql-5.7.37]# useradd -r -g mysql -u 303 -s /bin/false mysql

cmake编译MySQL

[root@centos-node3 mysql-5.7.37]# cmake -DWITH_BOOST=/usr/local/src/mysql-5.7.37/boost \
> -DWITH_SSH=system \
> -DWITH_ZLIB=system \
> -DSYSCONFDIR=/etc \
> -DMYSQL_DATADIR=/usr/local/mysql/data

在这里插入图片描述
需要等一会儿,看是否会报错,不同的报错有不同的处理方式,可以去检查自己的虚拟机上,相对应的依赖程序有没有安装上,在这里我的是成功了。

在这里插入图片描述
make编译安装:

[root@centos-node3 mysql-5.7.37]# make

这里需要很长时间,需要安装的很多
在这里插入图片描述
make install编译安装:

[root@centos-node3 mysql-5.7.37]# make install

没有报错就安装完成了:
在这里插入图片描述
编译配置文件,可以在原有的基础上修改。

[root@centos-node3 ~]# vim /etc/my.cnf

红色方框为修改后的:
在这里插入图片描述
创建文件,并修改权限,设置开机自启动

[root@centos-node3 ~]# cp /usr/local/src/mysql-5.7.37/support-files/mysql.server /etc/init.d/mysqld
[root@centos-node3 ~]# ll /etc/init.d/mysqld
-rw-r--r--. 1 root root 10576 Mar 28 22:56 /etc/init.d/mysqld
[root@centos-node3 ~]# chmod +x /etc/init.d/mysqld
[root@centos-node3 ~]# chkconfig --add mysqld
[root@centos-node3 ~]# chkconfig mysqld on

配置环境:

[root@centos-node3 ~]# echo "export PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh
[root@centos-node3 ~]# source /etc/profile.d/mysql.sh

初始化:

[root@centos-node3 ~]# mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql/

在这里插入图片描述
开启:

[root@centos-node3 ~]# systemctl start mysqld

多实例安装

安装路径相同:basedir /usr/local/mysql
1> 各个实例端口不同 3306—3308
2> 数据文件目录不同 /data/3306 /data/3307 /data/3308
1、创建用户和组:

[root@node4 ~]# groupadd -r -g 303 mysql
[root@node4 ~]# useradd -r -g mysql -u 303 -s /bin/false mysql

2、获取安装包(可以看我上一篇文章的地址获取)
在这里因为我的另一台机器上已经获取过了,所以我把它拷贝到现在这台机器上,比下载速度快很多:

[root@node4 ~]# scp 192.168.21.133:/root/mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz .

把那台机器上的那个文件拷贝到当前机器的当前位置。
在这里插入图片描述
3、解压并创建软链接:

[root@node4 ~]# tar xf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@node4 ~]# ln -sv /usr/local/mysql-5.7.33-linux-glibc2.12-x86_64/ /usr/local/mysql
‘/usr/local/mysql’ -> ‘/usr/local/mysql-5.7.33-linux-glibc2.12-x86_64/’

4、准备数据目录

[root@node4 ~]# mkdir -p /data/330{6..8}/data

在这里插入图片描述
方法一:每个MySQL多实例都有一个配置文件
(1)第一个端口的配置文件

[root@node4 ~]# vim /data/3306/my.cnf

在这里插入图片描述
复制该文件到另外两个配置文件中,并进行修改

[root@node4 ~]# cp /data/3306/my.cnf  /data/3307/my.cnf
[root@node4 ~]# cp /data/3306/my.cnf  /data/3308/my.cnf

只用把配置文件中相对应的数字修改为该端口号就可以。
在这里插入图片描述
(2)修改MySQL多实例的文件权限

[root@node4 ~]# chown -R mysql.mysql /data/330{6..8}

(3)配置MySQL的环境变量

[root@node4 ~]# echo 'export PATH=$PATH:/usr/local/mysql/bin' > /etc/profile.d/mysql.sh
[root@node4 ~]# source /etc/profile.d/mysql.sh

(4)初始化多实例:

[root@node4 ~]# mysqld --initialize --datadir=/data/3306/data --basedir=/usr/local/mysql --user=mysql
 密码:0>!u!I3i>;yM

初始化完成之后要记录一下密码,也就是红色方框内的
在这里插入图片描述
同理进行3307 和 3308的初始化:

[root@node4 ~]# mysqld --initialize --datadir=/data/3307/data --basedir=/usr/local/mysql --user=mysql
密码:ZC4tki*yKa9O
[root@node4 ~]# mysqld --initialize --datadir=/data/3308/data --basedir=/usr/local/mysql --user=mysql
密码:)J6p>ET52T/J

在这里插入图片描述
(5)启动MySQL多实例:
注意:在启动之前,先创建相应的文件,并修改权限,来规避报错的问题
先结束掉所有进程:(多敲几次关闭,然后再检查一下)

[root@node4 ~]# ps -ef | grep mysqld
[root@node4 ~]# killall mysqld
mysqld: no process found
[root@node4 ~]# ps -ef | grep mysqld
root       2655   2010  0 01:51 pts/2    00:00:00 grep --color=auto mysqld

然后创建文件,修改权限。

[root@node4 ~]# touch /data/3306/mysql_3306.err /data/3307/mysql_3307.err /data/3308/mysql_3308.err
[root@node4 ~]# chown mysql.mysql /data/3306/mysql_3306.err /data/3307/mysql_3307.err /data/3308/mysql_3308.err

启动多实例:

[root@node4 ~]# mysqld_safe --defaults-file=/data/3306/my.cnf &
[root@node4 ~]# mysqld_safe --defaults-file=/data/3307/my.cnf &
[root@node4 ~]# mysqld_safe --defaults-file=/data/3308/my.cnf &

在这里插入图片描述
检查是否启动成功:

[root@node4 ~]# netstat -lnpt | grep :330

在这里插入图片描述

(6)登录MySQL:

[root@node4 ~]# mysql -uroot -p -S /data/3306/mysql.sock

这里输入上面我们记录下来的初始密码
在这里插入图片描述
同理登录3307和3308:

[root@node4 ~]# mysql -uroot -p -S /data/3307/mysql.sock

在这里插入图片描述

[root@node4 ~]# mysql -uroot -p -S /data/3308/mysql.sock

在这里插入图片描述

(7)修改密码:

[root@node4 ~]# mysqladmin -uroot -p'0>!u!I3i>;yM' password 'MySQL@123' -S /data/3306/mysql.sock

在这里插入图片描述
同理修改3307和3308:

[root@node4 ~]# mysqladmin -uroot -p'ZC4tki*yKa9O' password 'MySQL@123' -S /data/3307/mysql.sock

在这里插入图片描述

[root@node4 ~]# mysqladmin -uroot -p')J6p>ET52T/J' password 'MySQL@123' -S /data/3308/mysql.sock

在这里插入图片描述
(8)关闭MySQL:

[root@node4 ~]# mysqladmin -uroot -p'MySQL@123' -S /data/3306/mysql.sock shutdown

第二行命令是查看是否关闭成功
在这里插入图片描述
方法二:推荐使用官方mysqld_multi
使用方法二之前先把方法一中的MySQL全都关闭了
(1)创建多实例的文件 /etc/my.cnf
查看帮助:

[root@node4 ~]# mysqld_multi --example

先修改,将其内容1–17行全部删除,只保留最后一行

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

查看修改后的文件:
在这里插入图片描述
修改配置文件:

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

在这里插入图片描述

接下来的(2)(3)(4)步骤同方法一:
(5)启动多实例:

[root@node4 ~]# mysqld_multi start 3307

但是在这里我第二个方法出现报错了,没有启动成功,后续成功会发下一篇。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值