IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 基于Centos7的源码和多实例安装MySQL -> 正文阅读

[系统运维]基于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

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

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 16:28:46  更:2022-04-06 16:32:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:02:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码