目录
1.1部署mysql
1.1.1 安装依赖性:
yum install cmake gcc-c++ openssl-devel ncurses-devel.x86_64 libtirpc-devel-1.3.3-8.el9_4.x86_64.rpm rpcgen.x86_64 -y
1.1.2 下载并解压源码包
1.1.3 源码编译安装mysql
编码时间会很久,所以我没有截图
进入解压后的mysql目录
[root@mysql-node10 mysql-5.7.44]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定安装路径
-DMYSQL_DATADIR=/data/mysql \ #指定数据目录
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \ #指定套接字文件
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #指定启用INNODB存储引擎,默认
用myisam
-DWITH_EXTRA_CHARSETS=all \ #扩展字符集
-DDEFAULT_CHARSET=utf8mb4 \ #指定默认字符集
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \ #指定默认校验字符集
-DWITH_BOOST=/root/mysql-5.7.44/boost/boost_1_59_0/ #指定c++库依赖
[root@mysql-node10 mysql-5.7.44]# make -j2 #-j2 表示有几个
核心就跑几个进程
[root@mysql-node10 mysql-5.7.44# make install
当cmake出错后如果想重新检测,删除 mysql-5.7.44 中 CMakeCache.txt即可
1.1.4 部署mysql
#生成启动脚本
dnf install initscripts-10.11.6-1.el9.x86_64 -y
#生成数据目录
、
#生成数据目录
改环境变量
#修改配置文件
#数据库初始化建立mysql基本数据
#数据库安全初始化
测试:
2.mysql的主从复制
另开两台虚拟机作为从服务器一台172.25.250.20 一台172.25.250.30
直接从10上复制过来,无需编译
但是之前部署的操作全都要做
2.1 配置masters
#进入数据库配置用户权限
mysql> CREATE USER 'repl'@'%' IDENTIFIED BY 'lee'; ##生成专门用来做复制的用
户,此用户是用于slave端做认证用
mysql> GRANT REPLICATION SLAVE ON *.* TO repl@'%'; ##对这个用户进行授权
mysql> SHOW MASTER STATUS; ##查看master的状态
#查看二进制日志
cd /data/mysql/
2.2配置slave
测试:
主上
在slave中查看数据是否有同步过来
在slave阶段中默认情况下是开启了写功能的,但是建议关闭slave节点的写功能来保证数据一致性 vim /etc/mysql.cnf
[mysqld]
super_read_only=on
2.3 延迟复制
一般只做一台就够了
node3
从20上把目录复制过来
延迟复制时用来控制sql线程的,和i/o线程无关
这个延迟复制不是i/o线程过段时间来复制,i/o是正常工作的
是日志已经保存在slave端了,那个sql要等多久进行回放
当master端误操作,可以在slave端进行数据备份
对node3进行从服务配置
测试
在master中写入数据后过了延迟时间才能被查询到
slave查看,暂时看不到
等一分钟后
2.4 慢查询日志
慢查询,顾名思义,执行很慢的查询
当执行SQL超过long_query_time参数设定的时间阈值(默认10s)时,就被认为是慢查询,这个
SQL语句就是需要优化的
慢查询被记录在慢查询日志里
慢查询日志默认是不开启的
如果需要优化SQL语句,就可以开启这个功能,它可以让你很容易地知道哪些语句是需要优化的。
这里可以看到是OFF
开启慢查询