Mysql+mycat+keepalive+haproxy高可用集群搭建(二)

Mysql部署高可用---Mysql安装

Mysql集群地址规划

IP地址主机名职责备注
192.168.1.150mysql-150-mastermysql主从节点为:192.168.1.152:3307、192.168.1.153:3307、192.168.1.154:3307
192.168.1.151mysql-151-mastermysql主从节点为:192.168.1.152:3308、192.168.1.153:3308、192.168.1.154:3308
192.168.1.152mysql-152-slavemysql从需要安装两个实例端口分别为3307,3308
192.168.1.153mysql-153-slavemysql从需要安装两个实例端口分别为3307,3308
192.168.1.154mysql-154-slavemysql从需要安装两个实例端口分别为3307,3308

前期准备:域名设置

mysql-150-master 域名设置

[root@localhost ~]# hostnamectl set-hostname mysql-150-master
[root@localhost ~]# bash
[root@mysql-150-master ~]# 

mysql-151-master 域名设置

#设置151主机域名
[root@mysql-150-master ~]# hostnamectl set-hostname mysql-151-master
[root@mysql-150-master ~]# bash
bash

mysql-152-slave 域名设置

#设置152主机域名
[root@localhost ~]# hostnamectl set-hostname mysql-152-slave
[root@localhost ~]# bash
[root@mysql-152-slave ~]# 

mysql-153-slave 域名设置

#设置153主机域名
[root@localhost ~]# hostnamectl set-hostname mysql-153-slave
[root@localhost ~]# bash
[root@mysql-153-slave ~]# 

mysql-154-slave 域名设置

#设置154主机域名
[root@localhost ~]# hostnamectl set-hostname mysql-154-slave
[root@localhost ~]# bash
bash
[root@mysql-154-slave ~]# 

检查是否已经安装mysql 或者mariadb

分别在5个节点上执行,如果有安装需要卸载

#检查是否已经安装过了
[root@mysql-150-master home]# rpm -qa | egrep "mariadb|mysql" 
mariadb-libs-5.5.68-1.el7.x86_64

存在安装包,先卸载安装包

[root@mysql-150-master home]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
[root@mysql-150-master home]# 

解压mysql.tar.gz

mysql 统一安装到/home路径

[root@mysql-150-master home]# pwd
/home
# 解压mysql安装包
[root@mysql-150-master home]# tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz 
#解压完成将mysql文件重命名
[root@mysql-150-master home]# mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql-5.7.22

创建mysql用户和用户组

#在150节点上添加mysql用户,用户组
[root@mysql-150-master home]# groupadd mysql
[root@mysql-150-master home]# 
[root@mysql-150-master home]# useradd -g mysql mysql
[root@mysql-150-master home]# 

#在151节点上添加mysql用户,用户组
[root@mysql-151-master home]# groupadd mysql
[root@mysql-151-master home]# 
[root@mysql-151-master home]# useradd -g mysql mysql
[root@mysql-151-master home]# 

#在152节点上添加mysql用户,用户组
[root@mysql-152-slave home]# groupadd mysql
[root@mysql-152-slave home]# 
[root@mysql-152-slave home]# useradd -g mysql mysql
[root@mysql-152-slave home]# 

#在153节点上添加mysql用户,用户组
[root@mysql-153-slave home]# groupadd mysql
[root@mysql-153-slave home]# 
[root@mysql-153-slave home]# useradd -g mysql mysql
[root@mysql-153-slave home]# 

#在154节点上添加mysql用户,用户组
[root@mysql-154-slave ~]# groupadd mysql
[root@mysql-154-slave ~]# 
[root@mysql-154-slave ~]# useradd -g mysql mysql
[root@mysql-154-slave ~]# 

#修改mysql用户的密码
[root@mysql-150-master home]# passwd mysql
更改用户 mysql 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

[root@mysql-151-master home]# passwd mysql
更改用户 mysql 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@mysql-151-master home]# 

[root@mysql-152-slave home]# passwd mysql
更改用户 mysql 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@mysql-152-slave home]# 

[root@mysql-153-slave home]# passwd mysql
更改用户 mysql 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@mysql-153-slave home]# 

[root@mysql-154-slave ~]# passwd mysql
更改用户 mysql 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@mysql-154-slave ~]# 

Mysql-5.7.22目录赋mysql用户权限

修改mysql-5.7.22 目录为mysql用户权限,新增mysql用户后,centos会在/home路径下创建mysql目录,权限也是mysql

[root@mysql-150-master home]# ll
总用量 0
drwx------. 2 mysql mysql  62 3月   1 14:22 mysql
drwxr-xr-x. 9 root  root  129 3月   1 13:51 mysql-5.7.22
#home/mysql-5.7.22/ 给目录赋mysql用户权限
[root@mysql-150-master home]# chown -R mysql:mysql /home/mysql-5.7.22/

### 将mysql-5.7.22移动到mysql目录下
[root@mysql-150-master home]# mv mysql-5.7.22/ mysql
[root@mysql-150-master home]# ll
总用量 0
drwx------. 3 mysql mysql 82 3月   1 14:35 mysql

Mysql路径添加到环境变量

[root@mysql-150-master 3306]# vi /etc/profile
 
 #文件结尾添加MySQL路径
export MYSQL_HOME=/home/mysql/mysql-5.7.22
export PATH=$PATH:$MYSQL_HOME/bin

#立即生效
[root@mysql-150-master 3306]# source /etc/profile

初始化数据库

在192.168.1.150节点上执行

[root@mysql-150-master mysql]# /home/mysql/mysql-5.7.22/bin/mysqld --initialize --user=mysql --basedir=/home/mysql/mysql-5.7.22 --datadir=/home/mysql/data/3306
2021-03-01T07:04:51.142825Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-03-01T07:04:51.532632Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-03-01T07:04:51.599975Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-03-01T07:04:51.658722Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 6b0dedc2-7a5c-11eb-8944-000c291220ce.
2021-03-01T07:04:51.660226Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-03-01T07:04:51.661744Z 1 [Note] A temporary password is generated for root@localhost: *,)pDnUBZ9SN
[root@mysql-150-master mysql]# 

==这里创建了mysql的默认数据密码,一定要记住后面有用==

2021-03-01T07:04:51.661744Z 1 [Note] A temporary password is generated for root@localhost: *,)pDnUBZ9SN

创建配置文件

192.168.1.150节点上执行

## 在/home/mysql下创建mysql 3306.cnf配置文件
### master节点设置端口为3306 
### 数据路径为./data/3306
[root@mysql-150-master mysql]# vi 3306.cnf
[client]
port= 3306
socket= /home/mysql/data/3306/mysql.sock
default-character-set=utf8

[mysqld]
port=3306
socket=/home/mysql/data/3306/mysql.sock
datadir=/home/mysql/data/3306
log-error=/home/mysql/data/3306/error.log
pid-file=/home/mysql/data/3306/mysql.pid

character-set-server=utf8
lower_case_table_names=1
autocommit = 1

启动Mysql

192.168.1.150节点上执行,以后台方式运行

[root@mysql-151-master mysql]# /home/mysql/mysql-5.7.22/bin/mysqld_safe --defaults-file=/home/mysql/3306.cnf &
[1] 16512
[root@mysql-151-master mysql]# Logging to '/home/mysql/data/3306/error.log'.
2021-03-01T07:18:50.279274Z mysqld_safe Starting mysqld daemon with databases from /home/mysql/data/3306

登录mysql

这里登录密码在上面,必须立即修改,授权远程访问,刷新权限

[root@mysql-150-master 3306]# mysql -uroot -h 127.0.0.1 -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.22

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

####修改MySQL的初始密码 必须立即修改。
mysql> alter user 'root'@'localhost' identified by 'ruanjie@0511';
Query OK, 0 rows affected (0.00 sec)

###授权远程访问(这样远程客户端才能访问)
mysql> grant all privileges on *.* to root@'%' identified by 'ruanjie@0511';
Query OK, 0 rows affected, 1 warning (0.00 sec)

###刷新权限,立即生效修改的配置
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> 

关闭Mysql服务

192.168.1.150节点上执行,之前已经启动150节点Msyql,需要关闭Mysql服务,后面拷贝数据库

关闭mysql服务命令(3306端口)

/home/mysql/mysql-5.7.22/bin/mysqladmin -uroot -p -P3306 -h127.0.0.1 shutdown

#关闭对应端口的服务
[root@mysql-150-master mysql]# /home/mysql/mysql-5.7.22/bin/mysqladmin -uroot -p -P3306 -h127.0.0.1 shutdown
Enter password: 
[root@mysql-153-slave mysql]# 2021-03-01T08:59:02.088440Z mysqld_safe mysqld from pid file /home/mysql/data/3308/mysql.pid ended

复制数据库到其他节点

现在192.168.1.150节点已经可以访问了,可以复制/home/mysql/data 下数据到其他节点

复制数据库到192.168.1.151(master)

192.168.1.150节点上执行,==这里从master节点复制数据到151上的mysql用户==

[root@mysql-150-master mysql]# scp -r /home/mysql/ mysql@192.168.1.151:/home/mysql/
The authenticity of host '192.168.1.151 (192.168.1.151)' can't be established.
ECDSA key fingerprint is SHA256:ffQ6umzMxFoQ9SfpVjJfatIVrYtJqXQV1OkEvd6LlA4.
ECDSA key fingerprint is MD5:7e:dc:aa:ca:83:2a:10:ac:09:d4:5b:50:c6:22:48:f6.
Are you sure you want to continue connecting (yes/no)? yes 
Warning: Permanently added '192.168.1.151' (ECDSA) to the list of known hosts.

复制数据库到192.168.1.152(slave)

192.168.1.150节点上执行

[root@mysql-150-master mysql]# scp -r /home/mysql/ mysql@192.168.1.152:/home/mysql/

###192.168.1.152上的从节点端口为3307 这里需要将3306命名为3307 同时修改配置文件
[root@mysql-152-slave data]# ll
drwxr-x---. 5 mysql mysql 4096 3月   1 19:48 3306
[root@mysql-152-slave data]# pwd
/home/mysql/data
[root@mysql-152-slave data]# mv /home/mysql/data/3306 /home/mysql/data/3307

###/home/mysql 配置文件修改为3307 端口也要修改为3307
-rw-r--r--. 1 mysql mysql 404 3月   1 19:51 3307.cnf
drwxr-x---. 4 mysql mysql  30 3月   1 15:54 data
drwxr-xr-x. 9 mysql mysql 129 3月   1 13:56 mysql-5.7.22
[root@mysql-152-slave mysql]# pwd
/home/mysql
[root@mysql-152-slave mysql]# 

###slave节点是有2个实例,需要负责3307 为3308
[root@mysql-152-slave data]# cp -r /home/mysql/data/3307 /home/mysql/data/3308
[root@mysql-152-slave mysql]# ll
-rw-r--r--. 1 mysql mysql 404 3月   1 19:51 3307.cnf
drwxr-x---. 4 mysql mysql  30 3月   1 15:54 data
drwxr-xr-x. 9 mysql mysql 129 3月   1 13:56 mysql-5.7.22
[root@mysql-152-slave mysql]# cp -r 3307.cnf 3308.cnf

复制数据库到192.168.1.153(slave)

192.168.1.152节点上执行,由于152节点为从节点,153也是从节点,直接使用152的节点数据库

[root@mysql-152-slave mysql]# scp -r /home/mysql/ mysql@192.168.1.153:/home/mysql/

复制数据库到192.168.1.154(slave)

192.168.1.152节点上执行,由于152节点为从节点,154也是从节点,直接使用152的节点数据库

[root@mysql-152-slave mysql]# scp -r /home/mysql/ mysql@192.168.1.153:/home/mysql/

启动所有节点数据库

启动mysql-150-master

###启动主库
[root@mysql-150-master mysql]# /home/mysql/mysql-5.7.22/bin/mysqld_safe --defaults-file=/home/mysql/3306.cnf &

启动mysql-151-master

###启动主库
[root@mysql-151-master mysql]# /home/mysql/mysql-5.7.22/bin/mysqld_safe --defaults-file=/home/mysql/3306.cnf &

启动mysql-152-slave

### 启动从库152:3307
[root@mysql-152-slave mysql]# /home/mysql/mysql-5.7.22/bin/mysqld_safe --defaults-file=/home/mysql/3307.cnf &

### 启动从库152:3308
[root@mysql-152-slave mysql]# /home/mysql/mysql-5.7.22/bin/mysqld_safe --defaults-file=/home/mysql/3308.cnf &

启动mysql-153-slave

### 启动从库153:3307
[root@mysql-153-slave mysql]# /home/mysql/mysql-5.7.22/bin/mysqld_safe --defaults-file=/home/mysql/3307.cnf &

### 启动从库153:3308
[root@mysql-153-slave mysql]# /home/mysql/mysql-5.7.22/bin/mysqld_safe --defaults-file=/home/mysql/3308.cnf &

启动mysql-154-slave

### 启动从库154:3307
[root@mysql-154-slave mysql]# /home/mysql/mysql-5.7.22/bin/mysqld_safe --defaults-file=/home/mysql/3307.cnf &

### 启动从库154:3308
[root@mysql-154-slave mysql]# /home/mysql/mysql-5.7.22/bin/mysqld_safe --defaults-file=/home/mysql/3308.cnf &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

畅游未来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值