Linux下搭建mysql主从服务器

date: 2018/12/9 20:47:54


一 配置信息

Mysql主服务器:

系统: centOS-7
版本: mysql-5.7.24
IP地址: 192.168.192.168
port: 3306

Mysql从服务器

系统: centOS-7
版本: mysql-5.7.24
IP地址: 192.168.192.168
port: 3306

准备工作

Linux系统
SSH工具
安装MySQL数据库
开放3306端口号
创建需要同步的库

二 搭建步骤

1 登录主服务器,执行如下命令

mysql -u root -p

提示密码安全策略问题:
set global validate_password_policy=0;

grant replication slave on *.* TO '主服务器名'@'192.168.192.200' identified by '密码';//加入从服务器信息
flush privileges;

2 编辑主服务器的数据库配置文件信息my.cnf

vi /etc/my.cnf

添加如下信息:
	server-id=168 #IP地址最后几位
	log_bin=/var/log/mysql/mysql-bin.log #同步日志文件名
	read-only=0 #只读权限 读写分离
	binlog-do-db=test #同步指定的库
	binlog-ignore-db=mysql #忽略掉mysql库

3 登录从服务器,执行如下命令

编辑从服务器的数据库配置文件信息:my.cnf

vi /etc/my.cnf

server-id=227
log_bin=/var/log/mysql/mysql-bin.log

4 重启主服务器

service mysqld restart

提示信息如下

修改

主从服务器下

进入/var/log/文件夹下,新建文件mysql,进入mysql目录,新建文件mysql-bin.log文件,并赋予读写权限(mysql和mysql-bin.log)

5 登录主服务器,查看master状态

show master status\G

6 登录从服务器,设置主从关系

stop slave;

从服务器写入主服务器相关信息,注意其主从一致性

change master to master_host='192.168.192.168',master_user='backup',master_password='Zhou+5201314',master_log_file='mysql-bin.000177',master_log_pos=154;

start slave;

第一次配置可能出错信息:可能未能正常初始化

ERROR 1794 (HY000): Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.

解决

删表
use mysql
drop table slave_master_info;
drop table slave_relay_log_info;
drop table slave_worker_info;
drop table innodb_index_stats;
drop table innodb_table_stats;

重新导入
source /usr/share/mysql/mysql_system_tables.sql //该sql文件所在位置不同系统可能不同

重启数据库 service mysqld restart
再次登录

7 查看从服务器的主从关系状态

show slave status\G

其中
    Slave_IO_Running: Yes  \\表示从服务器IO线程运行
    Slave_SQL_Running: Yes	\\表示从服务器SQL线程运行

![](https://i.imgur.com/gfdYBvj.png)

如果都为yes则主从搭建成功

8 主从服务器下执行

/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

9 如果主从库中不存在test库,则需要重新建库,然后重启,重新构建主从关系

主从知识点

用途

时时备灾,用于故障切换
读写分离,提供查询服务
备份,避免影响业务(备可容错性 可用性)
负载均衡

必要条件

主库开启binlog日志(设置bin-log参数)
主从server-id不同
从库服务器能连通主库

原理

  • 从库生成两个线程 一个SQL线程 一个I/O线程;
  • I/O线程会去请求主库的binlog 并得到binlog日志写到relay log(中继日志)文件中;
  • 主库会生成一个log dump线程 用来给从库I/O线程传binlog;
  • SQL线程 会读取relay log文件中的日志 并解析成具体的操作,来实现主从的操作一致,最终数据一致;

关系

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值