加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MYSQL教程mysql主从复制学习

发布时间:2020-12-12 00:48:21 所属栏目:MySql教程 来源:网络整理
导读:《MYSQL教程mysql主从复制学习》要点: 本文介绍了MYSQL教程mysql主从复制学习,希望对您有用。如果有疑问,可以联系我们。 导读:一、主从复制的作用1、如果主服务器出现问题,可以快速切换到从服务器.2、对与实时性要求不高或者更新不频繁的应用可以在从服

《MYSQL教程mysql主从复制学习》要点:
本文介绍了MYSQL教程mysql主从复制学习,希望对您有用。如果有疑问,可以联系我们。

导读:一、主从复制的作用1、如果主服务器出现问题,可以快速切换到从服务器.2、对与实时性要求不高或者更新不频繁的应用可以在从服务器上执行查询操作,降低主服务器的访问压力. 该文使用mysql5.5 centos6.5 64位

一、主从复制的作用

1、如果主服务器出现问题,可以快速切换到从服务器.MYSQL入门

2、对与实时性要求不高或者更新不频繁的应用可以在从服务器上执行查询操作,降低主服务器的访问压力.将数据的读写进行分离从而达到负载的效果.MYSQL入门

3、可以在从服务器进行数据备份操作,以避免备份期间对主服务器的影响.MYSQL入门

二、搭建主从复制环境

master:192.168.6.224MYSQL入门

slave:192.168.6.222MYSQL入门

1、在主服务器中为从服务器设置授权用户MYSQL入门

在主服务器中为从服务器192.168.6.222创建一个用户名为user2的用户,密码是123MYSQL入门

mysql> grant all on *.* to user2@192.168.6.222 identified by "123";MYSQL入门

参数解释:MYSQL入门

grant:mysql授权关键字MYSQL入门

*.* :所有库所有表MYSQL入门

?MYSQL入门

查看用户授权是否成功:MYSQL入门

mysql> show grants for user2@192.168.6.222;MYSQL入门

测试在slave服务器上使用user2能否登陆master服务器上的mysqlMYSQL入门

[root@localhost tmp]# mysql -uuser2 -p123 test -h192.168.6.224;MYSQL入门

2、开启主服务器的bin-log日志并开设置server-id的值.MYSQL入门

  修改主服务器的my.cnf配置文件:MYSQL入门

[mysqld]
#开启mysql的bin-log日志
log-bin=mysql-bin
#主服务器该值设置为1
server-id    = 1

3、重置bin-log日志:mysql> reset master;???MYSQL入门

查看最新的bin-log日志状态看是否在起始位置: mysql> show master status;MYSQL入门

mysql> show master status;
+------------------+----------+--------------+------------------+
| File???????????? | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |????? 107 |????????????? |????????????????? |
+------------------+----------+--------------+------------------+
MYSQL入门

4、备份主数据库数据MYSQL入门

  a、备份数据MYSQL入门

  b、更新bin-log日志MYSQL入门

  在这里我们使用mysqldump方式备份数据并使用 -l -F 参数直接在备份数据的时候设置读锁并更新bin-log日志MYSQL入门

?  mysqldump -uroot -p222221 test -l -F > '/tmp/mysql_back/test.sql';MYSQL入门

5、将主服务器备份的数据发送到slave服务器MYSQL入门

  [root@localhost tmp]# scp mysql_back/test.sql 192.168.6.222:/tmp/mysql_back/MYSQL入门

6、重置slave服务器上的bin-log日志并在slave服务器中使用备份的数据MYSQL入门

  mysql> rester master;MYSQL入门

  [root@localhost tmp]# mysql -uroot -p222221 test -v -f</tmp/mysql_back/test.sql;MYSQL入门

7、配置slave服务器中my.cnf参数MYSQL入门

  a、#配置从服务器server-id =2 (如果有多台从服务器则都有一个唯一的server-id)
    server-id?= 2
MYSQL入门

  b、#开启bin-log日志
    log-bin=mysql-bin
MYSQL入门

  c、#配置需要同步的主机、用户名、密码、端口号
?MYSQL入门

  1. #配置需要同步的主机?
  2. ?master-host?????=???192.168.6.224?
  3. #?The?username?the?slave?will?use?for?authentication?when?connecting?
  4. #?to?the?master?-?required?
  5. ?master-user?????=???user2?
  6. #?
  7. #?The?password?the?slave?will?authenticate?with?when?connecting?to?
  8. #?the?master?-?required?
  9. ?master-password?=???123?
  10. #?
  11. #?The?port?the?master?is?listening?on.?
  12. #?optional?-?defaults?to?3306?
  13. ?master-port?????=??3306?

 d、重启mysql让配置文件生效MYSQL入门

  [root@localhost tmp]# service mysqld restartMYSQL入门

  如果改方式无法重启mysql服务器可以使用下面的方式MYSQL入门

8、查看slave状态
?MYSQL入门

  1. mysql>?show?slave?statusG;?
  2. ***************************?1.?row?***************************?
  3. ???????????????Slave_IO_State:?Waiting?for?master?to?send?event?
  4. ??????????????????Master_Host:?192.168.6.224?
  5. ??????????????????Master_User:?user2?
  6. ??????????????????Master_Port:?3306?
  7. ????????????????Connect_Retry:?60????//每隔60秒去master服务器同步一次bin-log日志?
  8. ??????????????Master_Log_File:?mysql-bin.000002?
  9. ??????????Read_Master_Log_Pos:?107?
  10. ???????????????Relay_Log_File:?localhost-relay-bin.000002??//slave服务器日志?
  11. ???????????????Relay_Log_Pos:?253?
  12. ????????Relay_Master_Log_File:?mysql-bin.000002?
  13. ?????????????Slave_IO_Running:?Yes?
  14. ?????????????Slave_SQL_Running:?Yes???//这两行参数为yes表示主从配置成功?

Master_Log_File:代表主机上用于主备同步的日志文件名,MYSQL入门

Read_Master_Log_Pos:代表上一次成功同步到的日志文件中的位置.MYSQL入门

如果这两项与先前在主服务器上看到的File及Position的值不相符,则无法正确进行同步.MYSQL入门

三、测试

1、在master服务器添加数据并查看bin-log日志状态
?MYSQL入门

  1. mysql>?insert?into?t1?values(13);?
  2. Query?OK,?1?row?affected?(0.02?sec)?
  3. ?
  4. mysql>?insert?into?t1?values(14);?
  5. Query?OK,?1?row?affected?(0.01?sec)?
  6. ?
  7. mysql>?insert?into?t1?values(15);?
  8. Query?OK,?1?row?affected?(0.01?sec)?
  9. ?
  10. mysql>?show?master?status;?
  11. +------------------+----------+--------------+------------------+?
  12. |?File?????????????|?Position?|?Binlog_Do_DB?|?Binlog_Ignore_DB?|?
  13. +------------------+----------+--------------+------------------+?
  14. |?mysql-bin.000002?|??????656?|??????????????|??????????????????|?
  15. +------------------+----------+--------------+------------------+?

在这里可以看到主服务器的Postion与从服务器的Read_Master_Log_Pos值相等且Slave_IO_Running,Slave_SQL_Running值都是 Yes .这样mysql的主从配置成功.MYSQL入门

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读