mysql主从分离解决办法

Mysql主从配置无非就是想实现主从分离,操作如下:
一、安装前准备:
    1、工具:两台服务器安装好mysql和ntp服务
    2、检查:首先检查机器是否已经安装了mysql
    3、 安装步骤
               查找是否有残余mysql文件,如果有则删除:
               find / -name mysql
               find / -name my
               find / -name "my*"
               find / -name "my*.cnf"
         安装:
               rpm -ivh MySQL-server-5.6.20-1.el6.x86_64.rpm
               rpm -ivh MySQL-client-5.6.20-1.el6.x86_64.rpm 
               rpm -ivh MySQL-devel-5.6.20-1.el6.x86_64.rpm
         注: 在安装MySQL时,可能出现与package mysql-libs-5.1.71-1.el6.x86_64 冲突的情况
[root@localhost tmp]# rpm -ivh MySQL-server-advanced-5.6.20-1.rhel5.x86_64.rpm
Preparing...                ########################################### [100%]
        file /usr/share/mysql/czech/errmsg.sys from install of MySQL-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mysql-libs-5.1.73-3.el6_5.x86_64
        file /usr/share/mysql/danish/errmsg.sys from install of MySQL-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mysql-libs-5.1.73-3.el6_5.x86_64
        file /usr/share/mysql/dutch/errmsg.sys from install of MySQL-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mysql-libs-5.1.73-3.el6_5.x86_64
     ..............................................................................
 
 
解决办法:卸载相关的包
[root@localhost tmp]# rpm -qa | grep -i mysql
mysql-libs-5.1.71-1.el6.x86_64 
[root@localhost tmp]# rpm -ev mysql-libs-5.1.71-1.el6.x86_64  --nodeps
[root@localhost tmp]#
二、主服务器配置步骤:

         1、 复制一个/usr/share/mysql目录下的.cnf文件到/etc目录,并改名为my.cnf并进行编辑修改
             server-id = 1 #1表示主服务器( 数字可随意只要唯一 )
            skip-host-cache
           skip-name-resolve

log-bin = mysql-bin #启用MySQL二进制日志系统

binlog-do-db = TestSyn #指定需要同步的数据库(实际应用中根据实际情况指定)

binlog-ignore-db = mysql #无需同步的数据库

binlog-ignore-db = test #无需同步的数据库

2、重启mysql

3、创建mysql同步使用的账号并授权

                  GRANT REPLICATION SLAVE ON *.* to 'root'@'%' identified by 'q123456';
    4、显示主服务配置状态
                   show master ststus;
            5、锁主表
FLUSH TABLES WITH READ LOCK;

    三、从服务器配置
                   
                     1、 修改my.cnf配置文件,并保存退出
                        skip-host-cache           
                   skip-name-resolve

server-id = 2 #2表示从服务器

log-bin=mysql-bin

replicate-ignore-db=mysql

replicate-ignore-db=test

replicate-do-db=TestSyn  #需要同步的数据库

2、重启mysql

3、停止slave

[root@localhost tmp]# stop slave

4、登录MySQL后,配置同步信息

    指定主服务器IP地址:10.88.104.232

    指定同步用账户的用户名和密码

    指定同步用的主机二进制文件的file和position值(此处的值即MySQL主服务器配置第四步记录的值

 mysql>change master to master_host='主jiip', master_user='root' , master_password='trsadmin', master_log_file='mysql-bin.000001', master_log_pos=335;

5、启动从服务

[root@localhost tmp]# start slave

开启主表

unlock  tables

6、查看配置是否成功

查看slave状态
[root@localhost tmp]# show slave status\G;

若Slave_IO_Running与Slave_SQL_Running 字段都显示yes,则表示配置成功

Linux下如何配置MySQL的主从同步


1、遇到问题:移到pid错误      MySQL server PID file could not be found![失败]
用ps -ef|grep mysqld来查看进行之后杀死进程
kill -9 进程号
2、   授权法。例如,你想 root用户 使用 trsadmin 从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO ' root '@'%' IDENTIFIED BY ' trsadmin'  WITH GRANT OPTION;

3、主从同步原理图

原理解释:

上图中有两个服务器, 演示了从一个主服务器(master) 把数据同步到从服务器(slave)的过程。

这是一个主-从复制的例子。 主-主互相复制只是把上面的例子反过来再做一遍。 所以我们以这个例子介绍原理。

对于一个mysql服务器, 一般有两个线程来负责复制和被复制。当开启复制之后。

1. 作为主服务器Master,  会把自己的每一次改动都记录到 二进制日志 Binarylog 中。 (从服务器会负责来读取这个log, 然后在自己那里再执行一遍。)

2. 作为从服务器Slave, 会用master上的账号登陆到 master上, 读取master的Binarylog,  写入到自己的中继日志 Relaylog, 然后自己的sql线程会负责读取这个中继日志,并执行一遍。  到这里主服务器上的更改就同步到从服务器上了。

在mysql上可以查看当前服务器的主,从状态。 其实就是当前服务器的 Binary(作为主服务器角色)状态和位置。 以及其RelayLog(作为从服务器)的复制进度。


参数值:

1. 第一行表明 当前正在记录的 binarylog文件名是: mysql-bin.000014.

我们可以在mysql数据目录下,找到这个文件:

image

 

2.  第二行, Position107. 表示当前的文件偏移量, 就是写入在mysql-bin.000014 文件的记录位置。

这两点就构成了 主服务器的状态。  配置从服务器的时候,需要用到这两个值。 告诉从服务器从哪读取主服务器的数据。 (从服务器会登录之后,找到这个日志文件,并从这个偏移量之后开始复制。)

 

3. 第三行,和第四行,表示需要记录的数据库和需要忽略的数据库。 只有需要记录的数据库,其变化才会被写入到mysql-bin.000014日志文件中。  后面会再次介绍这两个参数






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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值