mysql主备复制模式搭建

在主备节点执行以下操作:

  • 准备工作目录
# MySQL工作目录
mkdir -p $MySQLPath/mysql
# MySQL配置目录
mkdir -p $MySQLPath/mysql/etc
# MySQL数据目录
mkdir -p $MySQLPath/mysql/data
# MySQL日志目录
mkdir -p $MySQLPath/mysql/log
touch $MySQLPath/errorLog/mysqld.log
# MySQL临时目录
mkdir -p $MySQLPath/mysql/tmp
  • 修改工作目录属主
    chown -R mysql:mysql $MySQLPath
  • 安装MySQL
    tar -zxf *mysql*.tar.gz
  • 加入本地命令及init服务
mkdir -p /usr/local/bin
ln -s $MySQLPath/install/bin/* /usr/local/bin/
cp $MySQLPath/install/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld

配置my.cnf文件

主MySQL节点
[mysqld]
datadir=$MySQLPath/data
socket=$MySQLPath/data/mysql.sock
user=mysql
symbolic-links=0
log_bin_trust_function_creators=1
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
init_connect='SET NAMES utf8'
innodb_file_format=BARRACUDA
innodb_large_prefix=ON
character-set-server=utf8
[client]
socket=$MySQLPath/data/mysql.sock
[mysql]
socket=$MySQLPath/data/mysql.sock
[mysqld_safe]
socket=$MySQLPath/data/mysql.sock
log-error=$MySQLPath/errorLog/mysqld.log
pid-file=$MySQLPath/data/mysqld.pid
replicate-do-db =all

备mysql节点
[mysqld]
datadir=$MySQLPath/data
socket=$MySQLPathl/data/mysql.sock
user=mysql
symbolic-links=0
log_bin_trust_function_creators=1
log-bin=mysql-bin
binlog_format=mixed
server-id = 2
init_connect='SET NAMES utf8'
innodb_file_format=BARRACUDA
innodb_large_prefix=ON
character-set-server=utf8
[client]
socket=$MySQLPath/data/mysql.sock
[mysql]
socket=$MySQLPath/data/mysql.sock
[mysqld_safe]
socket=$MySQLPath/data/mysql.sock
log-error=$MySQLPath/errorLog/mysqld.log
pid-file=$MySQLPath/data/mysqld.pid
replicate-do-db =all

初始化MySQL

mysqld --initialize-insecure --user=mysql --basedir=$MySQLPath/install --datadir=$MySQLPath/data

启动MySQL

service mysqld start

修改密码

mysqladmin -u root password {{db_password}}

创建软连接

ln -s $MySQLPath/data/mysql.sock /var/lib/mysql
cp .my.cnf /root/.my.cnf

在主MySQL执行命令

tasks:
  - name: create mysqluser replication
    mysql_user:
      login_user: "{{db_user}}"
      login_password: '{{db_password}}'
      name: replication
      host: '%'
      password: '{{db_password}}'
      priv: '*.*:REPLICATION SLAVE'
      state: present
  - name: Get master binlog file name and binlog position
    mysql_replication:
      login_user: "{{db_user}}"
      login_password: '{{db_password}}'
      mode: getmaster
    register: mysql_replication
  - name: stop slave
    mysql_replication:
      login_user: "{{db_user}}"
      login_password: '{{db_password}}'
      login_host: '{{db_slave}}'
      mode: stopslave
  - name: change master
    mysql_replication:
      login_user: "{{db_user}}"
      login_password: '{{db_password}}'
      login_host: '{{db_slave}}'
      mode: changemaster
      master_host: '{{db_master}}'
      master_user: replication
      master_password: '{{db_password}}'
      master_log_file: '{{mysql_replication.File}}'
      master_log_pos: '{{mysql_replication.Position}}'
  - name: start slave
    mysql_replication:
      login_user: "{{db_user}}"
      login_password: '{{db_password}}'
      login_host: '{{db_slave}}'
      mode: startslave
  - name: get slave status
    mysql_replication:
      login_user: "{{db_user}}"
      login_password: '{{db_password}}'
      login_host: '{{db_slave}}'
      mode: getslave
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值