①MySQL主从复制

mariadb的yum源

[mariadb]

name = MariaDB

baseurl = https://mirrors.aliyun.com/mariadb/yum/10.4/centos7-amd64/

gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB

gpgcheck=1

参考安装:通常二进制格式安装MariaDB:

​ (1)准备数据目录

​ 以/mydata/data目录为例

​ (2)安装配置mariadb

​ #useradd -r mysql

​ #tar xf mariadb-VERSION.tar.gz -C /usr/local

​ #cd /usr/local

​ #ln -sv mariadb-VERSION mysql

​ #chown -R root:mysql ./*

​ #scripts/mysql_install_db --user=mysql -datadir=/mydata/data

​ #cp supprot-files/mysqld.server /etc/init.d/mysqld

​ #chkconfig --add mysqld

​ (3)提供配置文件

​ ini格式的配置文件;各程序均可通过此配置文件获取信息

​ [program_name]

​ OS Vendor提供mariadb rpm包安装配置文件依次查找次序:
/etc/mysql/my.cnf --> /etc/my.cnf --> --defalult-extra-file=/PATH/TO/CONF_FILE --> ~/./my.cnf

通常二进制格式安装的服务程序其配置文件查找次序

/etc/my.cnf --> /etc/mysql/my.cnf --> --defalult-extra-file=/PATH/TO/CONF_FILE --> ~/./my.cnf

获取其读取次序:

​ mysqld --verbose --help

​ # cp supprot-files/mysql-large.conf /etc/my.cnf

​ /etc/my.cnf添加

​ datadir=/mysql/data

​ user=mysql

​ 添加三个选项:

​ datadir=/mydata/data

​ Innodb_file_per_table = ON

​ skip_name_resolve = ON

​ (4)启动服务

​ #service mysqld start

环境:

​ 10.10.10.196 CentOS 7,yum直接安装mariadb-server-5.5.64-1.el7.x86_64

​ 10.10.10.197 CentOS 6,二进制编译安装mariadb-5.5.36-linux-x86_64.tar.gz

所有服务器时间要同步

主服务器配置:10.10.10.196

a、启用二进制日志binary logs,并配置server_id
img

b、启动mysql查看配置是否生效,并记录当前正在使用的二进制日志文件名和起始位置
img

c、创建用户并授权复制权限,(REPLICATION SLAVE, REPLICATION CLIENT)
img

从服务配置:10.10.10.197

a、启动中继日志,并配置server_id
img

b、启动mysql查看配置是否生效
img

c、使用主服务器上的带有复制权限的用户,连接至主服务器,注意填写主服务器二进制日志文件和起始位置
使用HELP CHANGE MASTER TO;查看参数
语句: CHANGE MASTER TO MASTER_HOST=“10.10.10.196”,MASTER_USER=“replicate”,MASTER_PASSWORD=“replicate”,MASTER_LOG_FILE=“master-bin.000001”,MASTER_LOG_POS=245;
img

d、启动复制线程,并查看

img

测试:

主服务器上新建一个测试数据库

img

从服务器上测试查看:

img

复制时应该注意的问题:

​ 1、如何限制从服务器只读?

​ 在从服务器启动read_only;但仅对非具有SUPER权限的用户有效;

​ 阻止所有用户,从服务器启动一个终端不退出:MariaDB> FLUSH TABLES WITH READ LOCK;

​ 2、如何保证主从复制时的事务安全?

​ 在master节点启用参数:

​ sync_binlog = on

​ 如果用到的为InnoDB存储引擎:

​ innodb_flush_logs_at_trx_commit=on,在事务提交时立即将事务日志缓冲区中与事物相关的数据刷写至磁盘上的事务日志中

​ innodb_support_xa=on,分布式提交

​ 在slave节点:

​ skip_slave_start=on,开机时是否自动启动复制线程,建议为on

​ 主节点:

​ sync_master_info = 1

​ 从节点

​ sync_relay_log = 1

​ 在slave节点:

​ skip_slave_start=on,开机时是否自动启动复制线程,建议为on

​ 主节点:

​ sync_master_info = 1

​ 从节点

​ sync_relay_log = 1

​ sync_relay_log_info = 1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperGloo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值