你好,游客 登录 注册 搜索
背景:
阅读新闻

CentOS 6.3下MySQL主从复制笔记

[日期:2013-06-14] 来源:Linux社区  作者:showerlee [字体: ]

      MySQL主从复制结构是基于mysql bin-log日志基础上,从库通过打开IO进程收到主库的bin-log日志增量信息,并保存到本地relay log,而后再通过打开MYSQL进程从relay log上获取的增量信息并翻译成SQL语句后写到从数据库。

      主从复制结构,实际上可以实现两个功能:

      1.从库充当主库的数据库备份实例

      2.读写分离,主库负责正常读写数据,从库只负责读数据

      实际生产环境,因为很多应用实际读数据库的次数远大于写数据库的次数,所以在项目开发初期,编写程序时做一个判断,对所有读的操作全部推到从库,若从库无法获取数据,则再向主库获取数据,从而在一定意义上实现读写分离,缓解主库的IO压力。

      所以生产环境下推荐使用这种架构。


系统环境:CentOS6.3 x64

数据库:  mysql-5.6.10

 


mysql master:192.168.100.90

mysql slave:192.168.100.91

 

 

 

一.部署环境:


1.关闭iptables和SELINUX

# service iptables stop

# setenforce 0

# vi /etc/sysconfig/selinux

---------------

SELINUX=disabled

---------------

 


2.安装配置mysql传送门:http://www.linuxidc.com/Linux/2013-05/83788.htm

二.主mysql配置:(mysql master)

修改mysql配置文件:

# vi /etc/my.cnf

添加:

-----------------

# Replication Master Server

# bin日志路径

log-bin = /usr/local/mysql/log/bin.log

# 服务器ID号

server-id = 1

# 忽略mysql系统库复制

binlog-ignore-db=mysql

binlog-ignore-db=information_schema

------------

重启服务

# service mysqld restart


登录mysql后台:

# mysql -u root -p123456

查看此刻登录账号:

> select user();


在master为slave添加同步帐号:

> grant replication slave on *.* to 'slave'@'192.168.100.91' identified by '123456';


查看创建的用户:

> select user.host from mysql.user;


查看权限:

> show grants for 'slave'@'192.168.100.91';


mysql锁表只读(其他账户登录mysql后无法进行写表操作,防止备份数据库后,主mysql表更新,导致和从数据库内容不一致)

> flush tables with read lock;


查看锁表倒计时时间:

> show variables like '%timeout%';

------------------------

....


wait_timeout                | 28800

------------------------


将master的数据库表全部备份导出,并传送到slave服务器上。


# /usr/local/mysql/bin/mysqldump -u root -p123456 --opt  --flush-logs  --all-database > /root/allbak.sql

# cd ~

# scp allbak.sql root@192.168.100.91:/root


查看mysql偏移量(数据库如果有写操作,偏移值会递增)

# mysql -u root -p123456 -e "show master status"

----------------------

+------------+----------+--------------+------------------+-------------------+

| File      | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------+----------+--------------+------------------+-------------------+

| bin.000009 |    120 |              |                  |                  |

+------------+----------+--------------+------------------+-------------------+

----------------------

保证FILE列和Position列与从库配置一致:

linux
相关资讯       主从复制  CentOS6.3 MySQL 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款