Mysql主从环境搭建

1. Mysql安装

    这里的服务器环境是 centos 6.7,可以去mysql官网下载相应的版本,centos可以选择 redhat enterprise版本。分别在master和slave上安装好。

2. 操作Mysql

     启动:/etc/init.d/mysqld start;

     重启:/etc/init.d/mysqld restart;

     关闭:/etc/init.d/mysqld stop;

    

2. 配置

     安装成功之后如果需要修改root账号的密码,可以使用下面的语句:

      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '这里是密码' WITH GRANT OPTION;

      tomcat 主要的配置文件是 /usr/local/mysql/my.cnf

      对于master需要打开binary log,配置如下:

      创建复制账号(用于slave从master复制):

      GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.%' IDENTIFIED BY 'mysql';

      '192.168.0.%' 限制此账号的使用IP,安全起见一般把此IP限制为slave 的IP

      [mysqld]

      server-id=1//给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号

      log-bin=master-bin

      log-bin-index=master-bin.index     

      重启mysql服务:

      查看master的状态:登录数据库,运行命令 show master status;

      +-------------------+----------+--------------+------------------+
       | File                             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
      +-------------------+----------+--------------+------------------+
       | master-bin.000001 | 1223       |                             |                                   |
      +-------------------+----------+--------------+------------------+    

       如上所示:file 和 position的值在配置slave会用到。

      

        对于slave需要打开relay log,配置如下:

       [mysqld]

       server-id=2

       relay-log-index=slave-relay-bin.index

       relay-log=slave-relay-bin

      

       登录slave数据库:运行下面的命令连接master:

        change master to master_host='192.168.0.104', //Master 服务器Ip
        master_port=3306,
        master_user='repl',
        master_password='mysql', 
        master_log_file='master-bin.000001',//Master服务器产生的日志
        master_log_pos=1223;

        然后运行下面的命令启动slave: start slave

        查看slave状态: show slave status

        这里会返回很多参数值,如下:

              Slave_IO_State: Waiting for master to send event
              Master_Host: 192.168.2.222  //主服务器地址
              Master_User: mysync   //授权帐户名,尽量避免使用root
              Master_Port: 3306    //数据库端口,部分版本没有此行
              Connect_Retry: 60
              Master_Log_File: mysql-bin.000004
              Read_Master_Log_Pos: 600     //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos
              Relay_Log_File: ddte-relay-bin.000003
              Relay_Log_Pos: 251
              Relay_Master_Log_File: mysql-bin.000004
              Slave_IO_Running: Yes    //此状态必须YES
              Slave_SQL_Running: Yes     //此状态必须YES

         正常情况下最后两项为yes才说明配置成功。至于线程:Slave_IO_RunningSlave_SQL_Running和左右可以自行Google。

         可以在master库做一些操作看slave库有没有成功同步过去,如果没有成功同步过去可以在slave上查看日志(日志目录在 /data/mysql/log)

         如果发现slave不能成功同步:先查看日志,最常见的原因是之前master上做了某些操作未成功同步到slave上,然后slave继续做同步的话就会出错,比如找到对象等等, 一般同步出错sql复制线程会挂掉(这应是为了数据的完整性),这时可以先去检查下master的状态(show master status),可以查看下日志文件的名字和position是多少,如果有变化,先关掉slave(stop slave)应该按照master的目前的状态(主要是二进制日志文件名及目前日志的位置position),在slave上重新连接master。重启slave,查看slave状态,看io线程和sql线程是否成功启动。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值