Mysql环境搭建准备
本教程mysql版本:mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar 下载地址:https://dev.mysql.com/downloads/mysql/
系统是:centos7
教程是采用安装包的方式进行。
Mysql安装步骤
基本按照此步骤来,应该是不会出错的;
1:将安装包上传到服务器上,使用rz命令操作即可;
2:如果机器上之前安装过mysql的,在安装前要清理干净,省的以后出各种问题;
清理原有的mysql数据库
rpm -qa|grep mysql //查询有关mysql的列表
yum remove xxxx //根据结果进行相应的删除
find / -name mysql //查询mysql的配置文件
rm –rf xxxx //进行相应的删除
3:如果之前没有安装过mysql数据库的,centos系统原有mariadb也有删除掉;
rpm -qa|grep mariadb //查询是否有mariadb数据库
rpm -e xxxx //进行删除,如果有依赖删除不了用下面的命令强制删除
rpm -e --nodeps xxxx //强制删除
4:使用tar命令进行解压;
tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
解压后
使用rpm -ivh xxxxxxxxx进行依次安装,安装过程如果报错就单独进行处理,记住要有遇事不要慌,掏出手机发个朋友圈的心态,下面是我遇到的问题:
解决方式:使用 yum install net-tools命令进行安装net-tools;
5:安装mysql-community-server-5.7.28-1.el7.x86_64.rpm成功后就代表着环境OK了;
6:接下来启动mysql,进行一些设置,如下:
mysqld --initialize --user=mysql //初始化mysql
cat /var/log/mysqld.log //查看初始密码
systemctl start mysqld.service //启动mysql
systemctl status mysqld.service //查看是否启动
mysql -uroot -p //使用初始密码进行登录
set password=password('新密码'); //设置自己的密码
7:关闭防火墙;
systemctl stop iptables
systemctl stop firewalld
systemctl disable firewalld.service
8:至此mysql数据库安装完毕;
进行主从复制配置
主库配置
1:master库配置信息
// 1:修改 /etc 目录下的my.cnf文件
log_bin=mysql-bin //binlog文件名称
server-id=1 //server-id 保持集群唯一
sync-binlog=1 //异步
binlog-ignore-db=information_schema //忽略主从复制的表
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
// 2:重启数据库
systemctl restart mysqld
// 3:执行命令 grant replication slave on *.* to 'root'@'%' identified by 'root';
// 4:执行命令 grant all privileges on *.* to 'root'@'%' identified by 'root';
2:执行完以上命令后 执行 show master status 查看 主库的一些状态 在从库配置时用到先记录下来;
3:至此主库的配置已经好了
半同步复制设置
// 1:使用命令查看是否支持dynamic_loading
select @@have_dynamic_loading;
// 2:使用 show plugins 命令查看支持的插件是否包含半同步复制插件 rpl_semi_sync_master,没有的话使用命令 install plugin rpl_semi_sync_master soname 'semisync_master.so'; 安装。
// 3:使用 show variables like '%semi%'; 查看半同步复制配置项;
+-------------------------------------------+------------+
| Variable_name | Value |
+-------------------------------------------+------------+
| rpl_semi_sync_master_enabled | OFF |
| rpl_semi_sync_master_timeout | 10000 |
| rpl_semi_sync_master_trace_level | 32 |
| rpl_semi_sync_master_wait_for_slave_count | 1 |
| rpl_semi_sync_master_wait_no_slave | ON |
| rpl_semi_sync_master_wait_point | AFTER_SYNC |
+-------------------------------------------+------------+
// 4:使用命令 set global rpl_semi_sync_master_enabled=1; 开启半同步复制
// 5:set global rpl_semi_sync_master_timeout=1000; 设置半同步复制时间
从库配置
1:从库的配置信息,配置之前可以先执行show slave status;查看是否之前配置过主从配置,如果配置过需要利用stop slave 命令停止,然后再开始配置;
// 1:修改 /etc目录下的 my.cnf文件
server-id=2 // 保证集群唯一
relay_log=mysql-relay-bin // relay_log 文件名称(可选)
read_only=1 // 只读配置 (可选)
// 2:重启数据库
systemctl restart mysqld
// 3:执行命令
change master to master_host='主库地址',master_port=主库port,master_user='用户名',master_password='密码',master_log_file='binlog日志名称',master_log_pos=位置;
半同步复制从库设置
// 1:执行命令 install plugin rpl_semi_sync_slave soname 'semisync_slave.so'; 安装插件
// 2:set global rpl_semi_sync_slave_enabled=1; 开启半同步复制
// 3:stop slave; 关闭slave
// 4:start slave; 开启slave
至此,Mysql的安装和主从复制以及半复制方式已经搭建完成;