MySQL 主从复制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 主从复制相关的知识,希望对你有一定的参考价值。
mysql 主从复制
本案环境 :
主机 | 操作系统 | IP地 址 | 主要软件 |
---|---|---|---|
主服务器 | CentOS 7.3 x86_64 | 192.168.217.130 | NTP |
从服务器 | CentOS 7.3 x86_64 | 192.168.217.131 | ntpdate |
案例实施 :
配置主服务器 :
-
在主服务器上搭建时间同步服务, 安装NTP :
yum install ntp -y
-
配置 NTP :
vim /etc/ntp.conf #编辑配置文件 添加 server 127.127.217.0 #设置本地是时钟源 fudge 127.127.217.0 stratum 8 #设置时间层级为8(限制在15内) #127.127 ntp时间服务器的保留ip地址,作用是使用本机作为客户端的时间服务器
-
开启服务 :
systemctl start ntpd.service systemctl stop firewalld.service setenforce 0
-
配置 MySQL 配置文件 :
vim /etc/my.cnf #在配置文件添加 [mysqld] server-id = 11 #修改 ID 主从不一样 log-bin=master-bin #开启二进制日志 log-slave-updates=true #开启从服务器同步主服务器二进制日志
-
重启服务, 进入数据库给从服务器授权 :
systemctl restart mysqld.service
mysql -u root -p mysql>GRANT REPLICATION SLAVE ON *.* TO ‘myslave‘@‘192.168.217.%‘ IDENTIFIED BY ‘123456‘; #允许从服务器使用 myslave账户 登录数据库 mysql> FLUSH PRIVILEGES; #刷新权限 mysql> show master status; #查看主服务器状态 +-------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +-------------------+----------+--------------+------------------+-------------------+ | master-bin.000001 | 604 | | | | +-------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec)
记住主服务器的二进制日志文件名和偏移量 。
配置从服务器 :
-
安装 ntpdate 同步时间 :
yum install ntpdate -y #从服务器上安装的 [ro[email protected] ~]# systemctl start ntpdate.service #开启服务 [[email protected] ~]# /usr/sbin/ntpdate 192.168.217.130 #时间同步 6 Jul 09:45:44 ntpdate[2941]: adjust time server 192.168.217.130 offset -0.233224 sec #同步成功 systemctl stop firewalld.service setenforce 0
-
配置MySQL配置文件 :
vim /etc/my.cnf [mysqld] server-id = 12 #id 不一样 relay-log=relay-log-bin #开启中继日志 relay-log-index=slvae-relay-bin.index #指定位置和名称
-
重启服务 ,进入mysql :
systemctl restart mysqld.service
mysql -u root -p mysql> change master to master_host=‘192.168.217.130‘,master_user=‘myslave‘,master_password=‘123456‘,master_log_file=‘master-bin.000001‘,master_log_pos=604; # 主服务器地址、授权用户、二进制日志名称、偏移量 。 mysql> start slave; # 开启从服务器 mysql> show slave statusG; #查看从服务器状态 *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.217.130 Master_User: myslave Master_Port: 3306 Connect_Retry: 60 Master_Log_File: master-bin.000001 Read_Master_Log_Pos: 604 Relay_Log_File: relay-log-bin.000002 Relay_Log_Pos: 321 Relay_Master_Log_File: master-bin.000001 Slave_IO_Running: Yes # 两个为yes 表示同步中 Slave_SQL_Running: Yes
同步测试 :
-
在主服务器上创建数据库 :
mysql> create database test;
-
在从服务器上查看 :
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | jdy | | mysql | | performance_schema | | sys | | test | # 同步成功 +--------------------+ 6 rows in set (0.12 sec)
ps:数据同步只同步数据库同步之后所创建或修改的库或表 。
ps:从服务器上指主服务器二进制日志名称和偏移量一定不能错 。
ps:搭建多台从服务器只需要修改id不同即可 。
ps:以上是安装好数据库之后的操作 。
以上是关于MySQL 主从复制的主要内容,如果未能解决你的问题,请参考以下文章