目录
一、部署前准备
1、查看系统信息
# 查看系统版本
cat /etc/red*
# 查看系统位数
getconf LONG_BIT
[root@localhost ~]# cat /etc/red*
CentOS Linux release 7.5.1804 (Core)
[root@localhost ~]# getconf LONG_BIT
64
2、下载对应安装包
进入MySQL官网:https://dev.mysql.com/downloads/mysql/
可以选择一个自己需要的版本下载,我这里会使用MySQL8.0.37,使用Linux-Generic(通用包),可以先在自己开发机器上直接下载然后上传到Linux服务器中。
3、准备三台服务器
一主两从会使用到三台Linux服务器。
182.168.40.142 (master节点)
182.168.40.141 (slave1节点)
182.168.40.140 (slave2节点)
4、上传安装包到三台服务器
这里自己上传即可,统一上传到一个目录路径即可,方便后续操作,我这里会放在/data/soft目录下二、开始部署(基础部署,主从部署先要完成基础部署,该部分操作需要在所有节点执行)
rpm -qa | grep mariadb 查找mariadb的版本名称(和MySQL冲突,会导致MySQL的3306端口监听不到):如果存在文件,使用rpm -e --nodeps 安装包 删除
主节点和从节点部署其实都差不多,我这里使用xshell操作Linux服务器可以直接将命令同步到所有会话,如果没有类似的工具就只能独立执行。
1、将安装包解压并且移动到目标安装目录
注意:这里的文件是.xz文件,如果你下载的文件是**.tar.gz文件的话用 :tar -zxvf +文件命令
进入安装包存放目录,我这里是cd /data/softtar -Jxvf mysql-8.0.37-linux-glibc2.12-x86_64.tar.xz
不带tar.xz后缀的文件就是我们解压后的安装包,我们将安装包重命名为mysql-8.0.37
mv mysql-8.0.37-linux-glibc2.12-x86_64 /usr/local/mysql-8.0.37
2、编译配置文件my.cnf
这个文件一般是默认存在的,不需要自己手动创建,mysql在初始化是会去寻找这个配置文件,如果没有有则是默认的系统配置
在/etc文件夹下配置my.cnf文件,没有就创建
vim /etc/my.cnf
添加以下参数:
PS:其中有个server-id参数每个节点不能重复,需要独立配置,这一步先不做调整,在后续会进行独立修改。[mysqld]
#设置3306端口
port=3306
#socket=/tmp/mysql.sock
#设置mysql的安装目录
basedir=/usr/local/mysql-8.0.37
#
#设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql-8.0.37/data
#允许最大连接数/
max_connections=10000
#允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
#服务ID(不允许重复,推荐使用该服务器ip后几位)
server-id =142
#是否只读,1代表只读,0代表读写,从库建议设置成只读 SUPER权限可无视该规则(比如root账号)
read-only=0
#
#服务端使用的字符集默认为UTF8
#character-set-server=UTF8
#
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#默认使用“caching_sha2_password”插件认证
default_authentication_plugin=caching_sha2_password
#
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[client]
#设置mysql客户端连接服