主从复制

工做原理mysql

  • 主库把数据更改记录存储到二进制日志
  • 从库将主库的日志复制到本身的中继日志
  • 从库读取并执行中继日志,遇错中止

特性sql

  • 每一个从仅有一个主
  • 数据不是实时同步,确定存在瞬间主从不一致
  • 网络断开后,会在恢复后从新同步
  • 多主的话,能够用环形配置
  • 谨慎修改从上数据,防止同步时出现错误

优势数据库

  • 实时备份,切换方便
  • 负载均衡,下降服务器压力

使用 改主读从服务器

主数据库配置网络

主数据库master修改: 
一、修改MySQL配置:

# /etc/my.cnf 
log-bin = mysql-bin 

# 主数据库端ID号 
server-id = 1 

log-bin=/home/mysql/logs/binlog/bin-log
max_binlog_size = 500M
binlog_cache_size = 128K
binlog-do-db = adb
binlog-ignore-db = mysql
log-slave-updates
expire_logs_day=2
binlog_format="MIXED"

二、重启mysql,建立用于同步的帐户:

# 建立slave账号slave,密码111111 
mysql>grant replication slave on *.* to 'slave'@'%' identified by 'slave123'; 

# 更新数据库权限 
mysql>flush privileges; 
三、查询master的状态

mysql> show master status; 
+------------------+----------+--------------+------------------+ 
| File    | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
+------------------+----------+--------------+------------------+ 
| mysql-bin.000009 |  196 |    |     | 
+------------------+----------+--------------+------------------+ 
1 row in set

从数据库配置负载均衡

一、修改MySQL配置:

# 从数据库端ID号 
server-id =2 
二、执行同步命令

# 执行同步命令,设置主数据库ip,同步账号密码,同步位置 
mysql>change master to master_host='192.168.1.2',master_user='slave',master_password='slave123'

# 开启同步功能 
mysql>start slave; 
三、检查从数据库状态:

mysql> show slave status\G; 
*************************** 1. row *************************** 
... 
   Slave_IO_Running: Yes 
   Slave_SQL_Running: Yes  
...

状态ide

    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes日志

在从数据库调用show slave status\G时,注意上面两项状态,均为YES才算配置成功code

注意事项orm

log-bin目录的权限,建立目录,而且chmod

slave帐号的权限,grant相应权限,在从服务器试登录

相关文章
相关标签/搜索