数据库主从同步、读写分离配置

数据库主从同步、读写分离配置

数据库主从同步、读写分离在处理高并发当中也是很重要到的一个单元,同时,数据库主从同步、读写分离不但可以用来处理高并发,同时还可以拥有负载均衡、数据库备份等功能;下面就我我自己在配置主从同步的步骤做一下记录:

准备两个数据库
主数据库IP :118.25.57.*
从数据库IP :111.231.197.

前提
两个数据库建立相同的账号和密码
并且两个数据库的账号都打开远程控制
这里 主从库最好新建一个账户,专门用户主从同步;

修改主数据库配置文件
vim /etc/my.cnf
在[mysqld]下加
//实例ID 不能和集群中的其他MYSQL 实例一致
server-id = 99
// bin log 文件前缀
log-bin=mysql-bin
// 对应要同步的数据库
binlog-do-db-tongbu
//对应不需要同步的数据库
binlog-ignore-db=mysql
binlog-ignore-db
binlog-ignore-db=information_schema
binlog-ignore-db=test
binlog-ignore-db=performance_schema
binlog-ignore-db=AAA_READ_THIS_MESSAGE
binlog-ignore-db=palyer

重启主数据库
进入数据库
cd /phpstudy/mysql/bin
./mysql -u root -p
输入:
SHOW MASTER STATUS;

mysql> SHOW MASTER STATUS;
±-----------------±---------±--------------±-----------------------------------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
±-----------------±---------±--------------±-----------------------------------------------------------------------+
| mysql-bin.000013 | 107 | tongbu,palyer | mysql,information_schema,test,performance_schema,AAA_READ_THIS_MESSAGE |
±-----------------±---------±--------------±-----------------------------------------------------------------------+
表示配置成功

修改从数据库配置文件
vim /etc/my.cnf
在[mysqld]下加
#实例ID 不能和集群中的其他MYSQL 实例一致
server-id = 88
// bin log 文件前缀
log-bin=mysql-bin
// 对应要同步的数据库
binlog-do-db-tongbu
// 对应不需要同步的数据库
binlog-ignore-db=mysql
binlog-ignore-db
binlog-ignore-db=information_schema
binlog-ignore-db=test
binlog-ignore-db=performance_schema
binlog-ignore-db=AAA_READ_THIS_MESSAGE
binlog-ignore-db=palyer

注意:my.cnf配置文件的权限不要给777,最好是给一个655 容许root 用户使用就可以了

重启从数据库
进入数据库
cd /phpstudy/mysql/bin
./mysql -u root -p

从数据库执行
CHANGE MASTER TO MASTER_HOST=‘118.25.57.227’,//主数据库ip MASTER_PORT=3306,//主数据库端口
MASTER_USER=‘root’,//主数据库账号
MASTER_PASSWORD=‘bdqn123456’,//主数据库密码
MASTER_LOG_FILE=‘mysql-bin.000011’,//主数据库SHOW MASTER STATUS 这一步File 中的文件名
MASTER_LOG_POS=107;//主数据库SHOW MASTER STATUS 这一步 Position中的值

测试是否同步成功
从数据库执行:
show slave status \G;

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
当看到这两项都显示为YES 时表示同步成功。

错误处理:当主数据库执行一条错误的sql语句 导致执行错误,会报错
在从执行这个命令 跳过这一条sql
set global sql_slave_skip_counter=1;
跳过这一个错误,然后执行从下一个事件组开始。

注解:最终要实现读写分离有两个方法:第一使用数据库中间件来自动分流sql 语句
第二:自己在写后台代码 server层的时候 读写分开连接不同的数据库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值