mysql数据库主从搭建

有不少公司的网站存在大量的并发访问,通常的解决方式就是利用MySQL主从配置,实现读写分离,减轻数据库压力,今天就记录一下,这几回搭建主从的一些心得mysql

什么是MySQL主从复制

简单来讲就是保证主SQL(Master)和从SQL(Slave)的数据是一致性的,向Master插入数据后,Slave会自动从Master把修改的数据同步过来(有必定的延迟),经过这种方式来保证数据的一致性,就是主从复制sql

  1. 第一步固然是安装MySQL,数据库版本要一致,减小出现不可预支的问题
  2. 配置Master主服务器

      在Master MySQL上建立一个用户“slave”,并容许其余Slave服务器能够经过远程访问Master,经过该用户读取二进制日志,实现数据同步。数据库

mysql>create user slave; //建立新用户vim

//repl用户必须具备REPLICATION SLAVE权限,除此以外没有必要添加没必要要的权限,密码为mysql。说明一下192.168.0.%,这个配置是指明repl用户所在服务器,这里%是通配符,表示192.168.0.0-192.168.0.255的Server均可以以repl用户登录主服务器。固然你也能够指定固定Ip。centos

mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.0.%' IDENTIFIED BY 'mysql';服务器

刷新一下权限   flush privileges;并发

     找到MySQL安装文件夹修改my.ini文件。mysql中有好几种日志方式,这不是今天的重点。咱们只要启动二进制日志log-bin就ok。网站

 在[mysqld]下面增长下面几行代码spa

server-id=1   #给数据库服务的惟一标识,通常为你们设置服务器Ip的末尾号,若是从数据库也设置这个参数的话,必定不能相同,随便给个数字就能够了rest

log-bin=master-bin

log-bin-index=master-bin.index   #开启二进制日志功能,能够随便取,最好有含义(关键就是这里了)

## 复制过滤:须要备份的数据库,输出binlog

#binlog-do-db=roncoo

## 复制过滤:不须要备份的数据库,不输出(mysql库通常不一样步)

binlog-ignore-db=mysql

     查看日志

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000008 |      120 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

 

 重启MySQL服务

   4. Slave从服务器(centos)

(1)找到MySQL安装文件夹修改my.cnf文件,vim my.cnf

server-id= 101  #不可跟其余主从数据库相同

log-bin=edu-mysql-slave1-bin  # 开启二进制日志功能,以备Slave做为其它Slave的Master时使用

relay-log=mysql-relay-bin   #relay_log配置中继日志

log-slave-updates=1

read-only=1   #设定以后就是只读数据库了,只有super权限的用户能够读写

replicate-wild-do-table=db.%  #过滤掉不须要同步的数据库,只同步db数据库,这个最好在从库过滤

slave-skip-errors = 1133     #同步过程当中忽略的错误码

(2) 重启数据库  service mysql restart;

(3)链接Master

change master to master_host='192.168.0.?',   //指定主服务器IP地址
master_port=3306,   
master_user='slave',   //指定在主服务器上能够进行同步的用户名
master_password='mysql',    //指定在主服务器上能够进行同步的用户名的密码
master_log_file='master-bin.000001',   //Master服务器产生的日志,必须跟主数据库的file字段一致
master_log_pos=0   //必须跟主数据库的Position一致

(4)启动Slave

  start slave;

 查看状态   show slave status; 

 

 

mysql 1236错误

相关文章
相关标签/搜索