• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >Linux > centos7 mariadb主从复制配置搭建

centos7 mariadb主从复制配置搭建

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含centos7 mariadb,centos7安装mariadb,centos7 启动mariadb,centos7 卸载mariadb,mariadb 主从等服务器相关知识,网友希望可以进行参考

centos7 mariadb主从复制配置搭建


centos7 mariadb主从复制配置搭建

花了小一天的时间,终于实现了centos7 mariadb主从复制配置搭建,下面记录一下过程

环境:

虚拟机:vm8; centos7 版本:7.2.1511; mariadb 版本:centos7.2内置的主库服务器: 10.69.5.200,CentOS 7,MariaDB 10已安装,有数据。从库服务器1: 10.69.5.201,CentOS 7,MariaDB 10已安装,无应用数据。

主服务器配置

以下操作在主服务器192.168.71.151的/etc/my.cnf上进行。

1.修改配置文件,命令:vim /etc/my.cnf,输入下列代码:

[root@localhost ~]# cat /etc/my.cnf[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock`# 新添加的部分# 配置主从时需要添加以下信息 startinnodb_file_per_table=NOlog-bin=/var/lib/mysql/master-bin #log-bin没指定存储目录,则是默认datadir指向的目录binlog_format=mixedserver-id=200 #每个服务器都需要添加server_id配置,各个服务器的server_id需要保证唯一性,实践中通常设置为服务器IP地址的最后一位#配置主从时需要添加以下信息 end `# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0# Settings user and group are ignored when systemd is used.# If you need to run mysqld under a different user or group,# customize your systemd unit file for mariadb according to the# instructions in http://fedoraproject.org/wiki/Systemd[mysqld_safe]log-error=/var/log/mariadb/mariadb.logpid-file=/var/run/mariadb/mariadb.pid## include all files from the config directory#!includedir /etc/my.cnf.d

最后,:wq!保存退出

2.重启mariadb服务,输入命令 [root@localhost ~]# systemctl restart mariadb.service

3.登录mariadb [root@localhost ~]# mysql -u root -padmin 注:-p后是密码,中间没有空格 4.创建帐号并赋予replication的权限 从库,从主库复制数据时需要使用这个帐号进行

MariaDB [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'root'@'10.69.5.%' IDENTIFIED BY 'admin';Query OK, 0 rows affected (0.00 sec)

5.备份数据库数据,用于导入到从数据库中

加锁

实际工作中,备份的时候是不让往库中写数据的,所以数据库要加锁,只能读

MariaDB [(none)]> FLUSH TABLES WITH READ LOCK;Query OK, 0 rows affected (0.00 sec)
记录主库log文件及其当前位置
MariaDB [(none)]> SHOW MASTER STATUS;+------------------+----------+--------------+------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------------+----------+--------------+------------------+| mysql-bin.000001 |      694 |              |                  |+------------------+----------+--------------+------------------+

记住File和Position的部分,从服务器会用到

备份数据,输入命令:
[root@localhost ~]# mysqldump -uroot -p --all-databases > /root/db.sql
解锁 主库

数据备份完成后,就可以释放主库上的锁:

MariaDB [(none)]> UNLOCK TABLES;Query OK, 0 rows affected (0.00 sec)

从服务器配置

以下在从服务器上的操作

1.导入主库的数据

[root@localhost ~]# mysql -uroot -p < db.sql

2.从服务器/etc/my.cnf配置,设置relay-log my.cnf文件中添加一行relay_log=relay-bin 如果不设置,默认是按主机名 + “-relay-bin”生成relay log。

[root@localhost ~]# cat /etc/my.cnf[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0`#配置主从时需要添加以下信息 startinnodb_file_per_table=NOserver-id=201 #一般与服务器ip的最后数字一致relay-log=/var/lib/mysql/relay-bin#配置主从时需要添加以下信息 end `# Settings user and group are ignored when systemd is used.# If you need to run mysqld under a different user or group,# customize your systemd unit file for mariadb according to the# instructions in http://fedoraproject.org/wiki/Systemd[mysqld_safe]log-error=/var/log/mariadb/mariadb.logpid-file=/var/run/mariadb/mariadb.pid## include all files from the config directory#!includedir /etc/my.cnf.d

3.重启服务

[root@localhost ~]# systemctl restart mariadb.service

4.登录mariadb

[root@localhost ~]# mysql -u root -padmin

5.设置主从复制

MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='10.69.5.200',MASTER_USER='root', MASTER_PASSWORD='admin', MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS= 694;Query OK, 0 rows affected (0.02 sec)

这个命令完成以下几个任务:

a.设置当前服务器为主服务器(10.69.5.200)的从库b.提供当前数据库(从库)从主库复制数据时所需的用户名和密码,即上面的GRANT REPLICATION SLAVE ON *.* TO 'root'@'10.69.5.%' IDENTIFIED BY 'admin';设置的c.指定从库开始复制主库时需要使用的日志文件和文件位置,即上面主库执行SHOW MASTER STATUS;显示结果中的File和Position

6.开启主从复制

MariaDB [(none)]> START SLAVE;Query OK, 0 rows affected (0.00 sec)

7.查看从库状态

MariaDB [(none)]> show slave status\G*************************** 1. row ***************************               Slave_IO_State: Waiting for master to send event                  Master_Host: 10.69.5.200                  Master_User: root                  Master_Port: 3306                Connect_Retry: 60              Master_Log_File: master-bin.000001          Read_Master_Log_Pos: 694               Relay_Log_File: relay-bin.000003                Relay_Log_Pos: 530        Relay_Master_Log_File: master-bin.000001             Slave_IO_Running: Yes            Slave_SQL_Running: Yes              Replicate_Do_DB:           Replicate_Ignore_DB:            Replicate_Do_Table:        Replicate_Ignore_Table:       Replicate_Wild_Do_Table:   Replicate_Wild_Ignore_Table:                    Last_Errno: 0                   Last_Error:                  Skip_Counter: 0          Exec_Master_Log_Pos: 694              Relay_Log_Space: 818              Until_Condition: None               Until_Log_File:                 Until_Log_Pos: 0           Master_SSL_Allowed: No           Master_SSL_CA_File:            Master_SSL_CA_Path:               Master_SSL_Cert:             Master_SSL_Cipher:                Master_SSL_Key:         Seconds_Behind_Master: 0Master_SSL_Verify_Server_Cert: No                Last_IO_Errno: 0                Last_IO_Error:                Last_SQL_Errno: 0               Last_SQL_Error:   Replicate_Ignore_Server_Ids:              Master_Server_Id: 2001 row in set (0.00 sec)

注意:结果中Slave_IO_Running和Slave_SQL_Running必须为Yes,如果不是,需要根据提示的错误修改。

验证

主服务器:




 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • centos7 mariadb主从复制配置搭建

相关文章

  • rsync+inotify实现实时数据同步案例
  • CentOS7.0安装Nginx 1.7.4以及相关命令
  • Ubuntu18.04一次性升级Python所有库的方法步骤
  • Centos下nginx支持https协议
  • Centos 6.5下安装MySQL 5.6
  • Centos 6.5 DNS配置
  • CentOS下Nginx 设置开机 自启动 代码 脚本 命令
  • CentOS 6.8安装Zabbix3.2
  • centos7 rpm方式安装mysql5.7 详细相关教程
  • HTTP返回状态码中301和302的区别

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • Centos7中Nginx开机自启动的解决办法
    • centos6.8搭建dhcp服务器
    • linux下修改mysql密码
    • 在Ubuntu18.04上安装Docker CE的方法(社区版)
    • centos6.8搭建NDS服务器(bind)
    • Windows 10 下安装 Apache 2.4.41的教程
    • CentOS6.5下安装Nginx1.10.2过程
    • Linux下NFS搭建步骤
    • CentOS7下安装MySQL5.7安装与配置(YUM)
    • 在centos部署yii2 advanced框架

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有