设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 公司 数据
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL新加从库

发布时间:2022-08-23 16:25 所属栏目:115 来源:互联网
导读:MySQL主从是基于binlog日志来实现的,那么需要主服务器开启binlog,此选项默认是关闭。我这边服务器在部署的时候就开启了,因为使用binlog可以用来恢复MySQL数据,并且还为以后做主从做好准备,所以我们推荐大家在部署主服务器的时候就开启此选项。另外在做
  MySQL主从是基于binlog日志来实现的,那么需要主服务器开启binlog,此选项默认是关闭。我这边服务器在部署的时候就开启了,因为使用binlog可以用来恢复MySQL数据,并且还为以后做主从做好准备,所以我们推荐大家在部署主服务器的时候就开启此选项。另外在做主从的时候还需要主库和从库的server-id唯一,server-id在做主从的时候也是相当关键的一荐参数。
 
  另外因为我们MySQL主库已经运行一段时间了,里面已经有相当多数据,我们需要将这些数据备份出来,然后从库再从备份的节点同步数据,这样来保持主从的数据一致性,并且在操作过程中最好不要影响我们的业务正常运行。最终决定使用xtrabackup来备份数据,因为用xtrabackup备份数据的时候不需要琐表,但只限于InnoDB引擎的数据库和XtraDB引擎的数据库,对于MyISAM引擎的数据库还是会琐表,刚好我们的数据库引擎使用的是InnoDB
 
  操作步骤:
 
  第一步:部署从数据库服务器,最好数据库版本一致,部署过程省略
 
  第二步:修改配置文件
 
  # 以下为主服务器需要修改的配置,server_id不一定为82,可以为任何一个数字,比如我们可以用本机的IP最后一位
  [mysqld]
  datadir=/data/mysql       #此选项一定要指定,就算有默认也需要指定
  log_bin=mysql-bin
  server_id=10
  expire_logs_days=5        #指定binlog文件保留的天数,如果硬盘空间够大可以不指定,或者指定天数多一点
 
  # 以下为可选项
  binlog-ignore-db=mysql,information_schema,performance_schema,sys    #指定忽略不同步的数据库
  binlog-do-db=discuz,phpcms                                          #指定要同步的数据库
  在主服务器上面授权从服务器一个主从同步账号
 
  mysql> grant replication slave on *.* to 'slave'@'%' identified by '123qweASD';
  说明:以上授权命令根据自己需求更改,比如权限,可访问数据库,用户名,授权客户端,密码等信息

  第三步:安装xtrabackup工具(主从服务器都需要安装)
 
  至以下连接下载适合自己操作系统版本和MySQL版本的xtrabackup
 
  xtrabackup下载
 
  下载完成后执行以下命令安装
 
  # 这样可以自动安装所需要依赖包
  yum -y install percona-xtrabackup-24-2.4.10-1.el7.x86_64.rpm
  第四步:备份数据
 
  注意:以需要使用root用户执行,或者使用sudo权限执行
 
  备份整个库
 
  xtrabackup --user=root --password=123456 --target-dir=/root/mysql_bak -S /tmp/mysql.sock --backup
  --user             指定数据库访问用户名
 
  --password    指定数据库访问密码,如果密码有特殊字符需要使用单引号引起来
 
  --target-dir    指定备份路径,最好写绝对路径
 
  --backup        与--target-dir选项一起使用
 
  -S                   指定mysql.sock文件位置
 
  备份单个库
 
  xtrabackup --user=root --password=123456 --databases=test1 --target-dir=/root/mysql_bak -S /tmp/mysql.sock --backup
  --databases    指定需要备份的库名
 
  备份多个库
 
  xtrabackup --user=root --password=123456 --databases="test1 test2 test3" --target-dir=/root/mysql_bak -S /tmp/mysql.sock --backup
  --databases    多库用双引号引起来,使用空格进行分隔。

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读