MySQL5.7安装部署及主从简单部署
MySQL5.7部署主从
环境:
系统:CentOS7.8
数据库版本:MySQL5.7
主:192.168.24.134
从:192.168.24.135
一、安装数据库
1、验证系统预装的MySQL数据库
确认系统是否预装MySQL数据库,并特别指出可替代的MariaDB软件包
通过rpm -qa命令筛选是否存在mysql软件包
同样地,在rpm -qa命令中搜索MariaDB软件包
2、关闭防火墙,selinux
setenforce 0
systemctl stop firewalld
3、安装数据库
获取安装文件后自动解压
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
使用tar工具将指定的文件进行解包,并将其命名为mysql-5.7.31-linux-glibc2.12-x86_64。
设置用户mysql在目录/usr/local/mysql下的所有权限。
将文件mysql-5.7.31-linux-glibc2.12-x86_64移动至目标路径/usr/local/mysql。
配置MySQL安装目录的安全权限
为MySQL服务创建根组
以mysql为名字创建一个MySQL根用户,并使其同时拥有mysql组
echo mysql | passwd mysql
(mysql:mysql)的所有者变为/usr/local/mysql
(755)对路径/usr/local/mysql进行全局修改
启动数据库服务
cd /usr/local/mysql/bin/
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
在初始化完成后将生成一个临时密码以供后续登录使用。
编辑配置文件
vi /etc/my.cnf
[mysqld]
data_dir=/usr/local/mysql/data
#启用二进制日志
binary_log_path=/usr/local/mysql/data.mysql-bin.log
binary_log_format=ROW
sync_log=ON
expire_logs_days=7 #指定二进制日志自动归档/删除的时间(单位:天),默认情况下不归档.
binlog-do-db = test #需要同步的数据库
binloggnoredb = mysql #指定无需同步的数据库
binloggnoredb = information_schema #指定信息表schema的日志
binloggnoredb = performance_schema #指定性能相关的日志
binloggnoredb = sys #指定系统相关的日志
SQL_MODE设为NO ENGINE SUBSTITUTION,并启用字符串连接操作严格模式(STRICT TRANS TABLES)。符号链接禁用(symbolic-links=0)。最大连接数设定为400(max_connections=400)。每张表的INNODB文件数量固定为1(innodb_file_per_table=1)。注释:大小写不明确的表名存在潜在风险,请将涉及敏感字段的表名统一大小写以避免混淆。默认使用小写字母生成表名(lower_case_table_names=1)。
查询当前运行的数据库进程
ps -ef|grep mysqld
开始启动
$ /usr/local/mysql/support-files/mysql.server start
将mysql.server文件复制并设置为/等处的硬链接。 将mysql目录中的mysql复制并设置为/usr处的硬链接。 请注意该命令与第一条相同,请确保路径正确。
启动时自动加载服务
将MySQL服务器文件移动至init目录下
赋予init目录下mysqld脚本执行权限
启用MySQL服务以开机启动
更新环境变量配置文件
通过vim编辑用户的bash配置文件
$PATH 添加系统路径 Source ~/.bash_profile
重启数据库服务
systemctl restart mysqld
登录数据库后需要先更改密码
alter user ‘root’@‘localhost’ identified by ‘123456’;;
为MySQL服务配置my.cnf文件时需同步设置主从参数。[mysqld] 数据目录设置为/usr/local/mysql/data,并启用二进制日志功能以实现数据冗余保护和自动故障恢复功能。具体操作包括:启用二进制日志并指定主从标识符(server-id = 134),将二进制日志文件位置指定在/usr/local.mysql.data目录下的mysql-bin.log中,并将二进制日志格式设置为逐行记录形式(binlog_format = row)。同时启用同步二进制日志输出机制(sync_binlog = 1),并设定过期二进制日志天数为7天(expire_logs_days = 7)。
binlog-do-db = test #需要同步的数据库
Binlog ignore db设置为mysql。
Binlog ignore db设置为information_scheam。
Binlog ignore db设置为performance_schema。
Binlog ignore db设置为sys。
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
#表名大小写不明感,敏感为0
lower_case_table_names=1
2、主库配置
配置同步账号
mysql>CREATE USER ‘sync’@’%’ IDENTIFIED BY ‘sync’;(但是我是使用navicat建的)
授权
mysql>grant replication slave on . to ‘sync’@‘192.168.99.62’ identified by ‘sync’;
mysql>flush privileges;
mysql>exit
重启主库数据库
Systemctl restart mysqld
查看主库节点信息
Show master status
Flush tables with read lock;
从库配置
MySQL>更改主从主库至
MASTER_HOST地址为'192.168.24.134',
MASTER_USERNAME为'sync',
MASTER_PASSWORD设为'sync',
日志文件位置设为'mysql-bin.000001',
日志位置指定为154;
启动从库同步
mysql> start slave;
查看备库状态
mysql> show slave status\G
当Slave_IO_Running与Slave_SQL_Running两个参数均为'YES'时,则主备系统处于正常状态;当 Slave_IO_Running 的状态为 'connecting' 或其他非有效值时,则主备系统无法正常运行。在排查故障原因时,请检查以下几点:pos是否正确?密码是否正确?此外还需关注网络连接状态以及防火墙设置情况。由于我在部署过程中未关闭防火墙设置(即使得同步过程无法顺利进行),
