mariaDB主从搭建

作者: 百里江山 | 来源:发表于2020-01-13 13:06 被阅读0次

一. 环境

  1. CentOS7
  2. master: 192.168.21.22
  3. slave: 192.168.21.23

二. master配置文件

cp /usr/share/mysql/my-large.cnf /etc/my.cnf
vim /etc/my.cnf
  • /etc/my.cnf
#开启二进制日志记录
log-bin=mysql-bin
# ignore sync databases;
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
# master设置1
server-id       = 1

三. master配置

  1. 使用grant replication 命令创建1个专用于主从复制的帐号
  2. 注意访问权限设置'marry'@'192.168.21.%', 代表192.168.21.1~192.168.21.255的IP访问都可以.
# 在master上创建一个用于复制的帐号.帐号名:repl, 密码: 123456, 授权*.* 所有的库与表
grant replication slave, replication client on *.* to repl@'192.168.21.%' identified  by '123456';
# 查看master状态
show master status

四. slave配置

cp /usr/share/mysql/my-large.cnf /etc/my.cnf
vim /etc/my.cnf
  • /etc/my.cnf
#开启二进制日志记录
log-bin=mysql-bin
# 开启只读权限
read_only = 1
# 中继日志
relay-log = /var/lib/mysql/mysql-relay-bin
# 允许备库将其重放的事件也记录到自身的二进制日志中.
log_slave_updates = 1
# slave设置
server-id       = 2

启动复制

  • 启动脚本
    第一步: change master to master_host='server1',master_port=3306, master_user='repl', master_password='123456', master_log_file='mysql-bin.000002', master_log_pos=0;
    如果报错,则使用stop slave; reset slave
    第二步: start slave

  • 查看slave启动状态 show slave status\G

  • 在主库上查看复制线程状态
    show processlist\G;

五. 测试验证

  • 主服务的状态 show master status

    主服务的状态
  • 从服务器的状态 show slave status

    从服务器的状态
  • 主从结果集一致


    查询结果集一样

六. look help

  1. help change master to

七. 遇到的坑

重启mariadb报错

[root@kubernetes ~]# systemctl restart mariadb
Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.
  • 解决方法

一般采用yum install mariadb mariadb-server安装的情况下

进入cd /usr/share/mysql 这个目录下有5个cnf后缀的文件,其实是为用户准备不同需求的配置文件

./my-huge.cnf  # 适合1~2G内存
./my-innodb-heavy-4G.cnf # 适合4G内存的
./my-large.cnf #适合512M的
./my-medium.cnf #适合32~64M
./my-small.cnf #适合小于64M

可以参考官方文档: http://dev.mysql.com/doc/mysql/en/option-files.html

  • 本次采用虚拟机, 选择my-large.cnf文件做为配置文件
    cp /usr/share/mysql/my-large.cnf /etc/my.cnf 进行覆盖操作.

连接master时报错

MariaDB [(none)]> change master to master_host='192.168.21.22',master_port=3306,master_user='marry',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=245;
ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MariaDB error log
  • 解决方法
>stop slave 
>reset slave

参考

  1. https://blog.csdn.net/u012982280/article/details/80093933

相关文章

网友评论

    本文标题:mariaDB主从搭建

    本文链接:https://www.haomeiwen.com/subject/xklwactx.html