linux7下mariadb主从搭建

首先安装mariadb,这里就不说了

        修改my.cnf文件中的server-id,使主从的server-id不一样,比如:

然后重启从库

然后主库创建新用户并且授权,新用户将用来做主库到从库的二进制日志拷贝

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'slave';

然后查询主库的状态

记录下二进制文件编码和当前位置,position应该和sqlserver日志中的lsn类似

然后配置从节点

注意填写刚才记录的二进制文件编码和当前位置

CHANGE MASTER TO MASTER_HOST='192.168.159.66',MASTER_USER='slave',MASTER_PASSWORD='slave',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=245;

注意,如果报错说需要停止线程,那就停止相应的用户线程,比如:stop slave

最后重启从库

查看主从状态

如果显示Slave_ID_Running: Yes和Slave_SQL_Running: Yes表明主从关系成功建立

如果两者显示为No的话,第一步先重启从库,如果问题没有解决,那么就重新运行以下命令

CHANGE MASTER TO MASTER_HOST='192.168.159.66',MASTER_USER='slave',MASTER_PASSWORD='slave',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=245;

如果Slave_ID_Running为Connecting,则也是以上信息不正确,可能是主库host连接不上,存在网络不通,或者ip配置错误。可能是用户名密码错误,可能是二进制文件编码错误,还可能是位置信息不对。

解决办法同样是重新运行以下命令

CHANGE MASTER TO MASTER_HOST='192.168.159.66',MASTER_USER='slave',MASTER_PASSWORD='slave',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=245;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Ansible创建MariaDB主从配置,可以按照以下步骤进行操作: 1. 在Ansible控制节点上,创建一个名为`mariadb.yml`的Playbook文件,并添加以下内容: ``` - name: Configure MariaDB master hosts: master roles: - mariadb - name: Configure MariaDB slave hosts: slave roles: - mariadb ``` 2. 在Ansible控制节点上,创建一个名为`roles/mariadb/tasks/main.yml`的任务文件,并添加以下内容: ``` - name: Install MariaDB server yum: name: mariadb-server state: present - name: Start and enable MariaDB service service: name: mariadb state: started enabled: yes - name: Configure MariaDB master template: src: master.cnf.j2 dest: /etc/my.cnf.d/master.cnf notify: restart mariadb - name: Configure MariaDB slave template: src: slave.cnf.j2 dest: /etc/my.cnf.d/slave.cnf notify: restart mariadb - name: Start MariaDB replication on the slave shell: | mysql -e "CHANGE MASTER TO MASTER_HOST='{{ master_host }}', MASTER_USER='{{ replication_user }}', MASTER_PASSWORD='{{ replication_password }}'; START SLAVE;" when: "'slave' in inventory_hostname" ``` 3. 在Ansible控制节点上,创建一个名为`roles/mariadb/templates/master.cnf.j2`的模板文件,并添加以下内容: ``` [mysqld] server-id = 1 log_bin = /var/log/mysql/mysql-bin.log binlog_format = ROW ``` 4. 在Ansible控制节点上,创建一个名为`roles/mariadb/templates/slave.cnf.j2`的模板文件,并添加以下内容: ``` [mysqld] server-id = 2 ``` 5. 在Ansible控制节点上,创建一个名为`inventory.ini`的清单文件,并添加以下内容: ``` [master] master_hostname ansible_host=<master_ip> [slave] slave_hostname ansible_host=<slave_ip> ``` 请将`<master_ip>`和`<slave_ip>`替换为实际的主机IP地址。 6. 在Ansible控制节点上,运行以下命令以执行Playbook并创建MariaDB主从配置: ``` ansible-playbook -i inventory.ini mariadb.yml ``` 现在,您已成功使用Ansible创建了MariaDB主从配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值