MySQL主从复制

Posted li1204008978

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL主从复制相关的知识,希望对你有一定的参考价值。

----------主数据库  ---------从数据库
          192.168.1.1           192.168.1.2

一、准备工作

1、关闭防火墙

[[email protected] ~]# service iptables stop

[[email protected] ~]# chkconfig iptables off

 

二、时间同步

1、在主数据库上安装ntp时间服务

[[email protected] ~]# yum -y install ntp

[[email protected] ~]# vim /etc/ntp.conf

添加:

server 127.127.1.0

fudge 127.127.1.0 stratum 8

[[email protected] ~]# service ntpd restart

2、在从数据库上安装ntp时间服务

[[email protected] ~]# yum -y install ntpdate

[[email protected] ~]# ntpdate 192.168.1.1

 

三、主从配置

1、主数据库服务器配置

[[email protected] ~]# vim /etc/my.cnf

添加:去掉前面#号之后再去修改

server-id=11 //修改

log-bin=master-bin //修改

log-slave-updates=true //添加

[[email protected] ~]# service mysqld restart

[[email protected] ~]# mysql -u root -p123.com

mysql> grant replication slave on *.* to ‘slave‘@‘192.168.1.%‘ identified by ‘123.com‘;   #slave为用户,123.com为密码

mysql> flush privileges;

mysql> show master status;

+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      107 |              |                  |
+------------------+----------+--------------+------------------+

 

mysql> quit

2、从数据库服务器配置

[[email protected] ~]# vim /etc/my.cnf

添加:

server-id=22 //修改

relay-log=relay-log-bin //添加

relay-log-index=slave-relay-bin.index //添加

注意:主—从的ID不能相同。

[[email protected] ~]# service mysqld restart

[[email protected] ~]# mysql -u root -p123.com

mysql> change master to master_host=‘192.168.1.1‘,master_user=‘slave‘,master_password=‘123.com‘,master_log_file=‘mast er-bin.000001‘,master_log_pos=107;

mysql> start slave;

mysql> show slave status\G     //结尾不能加; 否则或报错。

Slave_IO_Running: Yes  //确保为YES

Slave_SQL_Running: Yes  //确保为YES

mysql> quit

 

问题说明:

1、如果出现ERROR: No query specified

则:原因是语法错误,去掉语句后的;号。

2、如果bin-log日志不更新,或者无法进行数据同步,

则:删除bin-log日志,重新启动服务即可。

3、如果出现

slave_io_running: connecting

Slave_SQL_Running: Yes   问题通常是:

网络不通、密码不对、pos不正确

 

四、验证:

1)主数据库服务器:

[[email protected] ~]# mysql -u root -p123.com

mysql> show databases;

mysql> create database hehe;

mysql> show databases; mysql> use hehe;

mysql> create table biao1 (id int(5),name char(12));

mysql> show tables;

mysql> quit

 

2)从数据库服务器:

[[email protected] ~]# mysql -u root -p123.com

mysql> show databases;

mysql> show databases; mysql> use hehe

mysql> show tables;

mysql> quit

 

 

以上是关于MySQL主从复制的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 主从复制与读写分离(原理深刻,过程详细,值得一看)

MySQL主从复制与读写分离

MySQL主从复制及读写分离实际部署与验证

MySQL主从复制及读写分离实际部署与验证

mysql实现主从复制/主从同步

MySQL主从复制以及读写分离(❤❤❤❤含理论和实验❤❤❤❤大家中秋快乐!㊗)