Linux系统CentOS7.7安装MySQL及MySQL主从同步配置

MySQL安装

下载MySQL包

下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads.
在这里插入图片描述

检查是否存在已安装的MySQL或mariadb

查看是否存在mysql

rpm -qa|grep mysql

查看是否存在mariadb

rpm -qa|grep mariadb

如果存在则删除
删除对应的安装文件

 rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

解压文件

 tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz 

创建mysql用户组和用户并修改权限

 groupadd mysql                     #创建工作组
 useradd -r -g mysql mysql          #建立用户帐号
 mkdir -p  /data/mysql              #创建目录
 chown mysql:mysql -R /data/mysql   #赋予权限

移动并重命名

 mv mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz /usr/local/mysql

主库配置my.cnf

[mysqld]

basedir=/usr/local/mysql
datadir=/data/mysql

## 同一局域网内注意要唯一  建议内网IP
server-id=194
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin
## 配置主从复制日志 mysql-bin  保留天数
expire_logs_days = 1
##跳过dns解析
skip-name-resolve
##添加链接数
max_connections=1000
#不区分大小写
lower_case_table_names = 1
#关闭 ONLY_FULL_GROUP_BY
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#开启慢查询日志
slow_query_log = 1
slow_query_log_file = /data/mysql/logs/mysql_slow.log
long_query_time=10
#时间改成中国时间
default-time-zone = '+8:00'
#编码
character_set_server=utf8mb4
#默认的timestamp
explicit_defaults_for_timestamp=true
#服务器发送和接受的最大包长度
max_allowed_packet = 800M 


从库配置my.cnf

[mysqld]

basedir=/usr/local/mysql
datadir=/data/mysql


## 同一局域网内注意要唯一
server-id=135
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-slave-bin
## relay_log配置中继日志
relay_log=edu-mysql-relay-bin
## 配置主从复制日志 mysql-bin  保留天数
expire_logs_days = 1
##跳过dns解析
skip-name-resolve
##添加链接数
max_connections=1000
#不区分大小写
lower_case_table_names = 1
#从库配置只读
read_only=1
#关闭 ONLY_FULL_GROUP_BY
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#启用relaylog的自动修复功能,避免由于网络之类的外因造成日志损坏,主从停止。
#自动清除没有用的relay_log 日志
relay_log_purge = 1  
#当slave从库宕机后,假如relay-log损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的relay-log,并且重新从master上获取日志,这样就保证了relay-log的完整性。默认情况下该功能是关闭的,将relay_log_recovery的值设置为 1时,可在slave从库上开启该功能,建议开启。
relay_log_recovery = 1 
#跳过所有错误
slave-skip-errors=1062,1032
#开启慢查询日志
slow_query_log = 1
slow_query_log_file = /data/mysql/logs/mysql_slow.log
long_query_time=10

#时间改成中国时间
default-time-zone = '+8:00'
#编码
character_set_server=utf8mb4
#默认的timestamp
explicit_defaults_for_timestamp=true
#服务器发送和接受的最大包长度
max_allowed_packet = 800M 

初始化并查看密码

cd /usr/local/mysql/bin/

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

cat /data/mysql/mysql.err   #密码在最后面

启动mysql,并更改密码

//先将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
//启动MySQL服务
service mysql start  
//查看是否启动成功
ps -ef | grep mysql
//进入bin目录
cd /usr/local/mysql/bin/
//登录
./mysql -u root -p
//使用之前查的密码
//修改密码
SET PASSWORD = PASSWORD('123456');
//允许远程访问
grant all privileges on *.* to root@'%' identified by '123456789' with grant option;
//刷新
flush privileges;
//退出重新登录
quit;

测试远程访问

本机使用对应的工具,进行连接测试

MySQL主从配置

创建从数据库访问主库账户

CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
//授权
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';

查看主机配置

show master status;

从库配置

MySQL从上配置主从连接信息

CHANGE MASTER TO
	 MASTER_HOST='172.17.14.194', 	
	 MASTER_PORT=3306,
	 MASTER_USER='slave', 
	 MASTER_PASSWORD='123456', 			        
	 MASTER_LOG_FILE='mysql-bin.000002',			   
     MASTER_LOG_POS=1390;

开启slave的主从复制功能

start slave;

查看是否配置成功

show slave status \G;

slave_IO_Running
slave_SQL_Running
全部显示yes 则代表成功

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值