centos7上mysql5.6版本主从复制

做主从复制实验:

第一步:主服务器上操作

1、修改主服务器master:

[[email protected] ~]# vim /etc/my.cnf
server_id = 1  //[必须]服务器唯一ID,默认是1
log-bin=mysql-bin //[必须]启用二进制日志

2、重启主数据库

[[email protected] ~]# systemctl restart mysqld

3、在主服务器上建立帐户并授权slave:

mysql> grant replication slave on *.* to ‘zhangsan‘@‘%‘ identified by ‘123456‘;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

4、登录主服务器的mysql,查询master的状态

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      401 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

第二步:从服务器操作

1、修改从服务器slave:

[[email protected] ~]# vim /etc/my.cnf
 server_id = 2
log-bin=mysql-bin

2、重启从数据库

[[email protected] ~]# systemctl restart mysqld

3、配置从服务器Slave:

mysql> change master to master_host=‘192.168.35.131‘,master_user=‘zhangsan‘,master_password=‘123456‘, master_log_file=‘mysql-bin.000001‘,master_log_pos=401;
Query OK, 0 rows affected, 2 warnings (0.02 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

4、启动从服务器复制功能并检查从服务器复制功能状态

mysql> start slave;
Query OK, 0 rows affected (0.13 sec)

mysql> show slave status \G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.35.131  //主服务器地址
                  Master_User: zhangsan     //授权帐户名,尽量避免使用root
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 401   //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos
               Relay_Log_File: localhost-relay-bin.000002
                Relay_Log_Pos: 283
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes    //此状态必须YES
            Slave_SQL_Running: Yes    //此状态必须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: 401
              Relay_Log_Space: 460
              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: 0
Master_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: 1
                  Master_UUID: 31f8646b-484e-11e8-b503-000c298f5b19
             Master_Info_File: /data/mysqldb/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set:
            Executed_Gtid_Set:
                Auto_Position: 0
1 row in set (0.00 sec)

ERROR:
No query specified

注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。

第三步:检测主从配置

1、在主数据库中创建一个库data,查看从库中是否有

主库中:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

mysql> create database data;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| data               |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

2、从库中查看:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| data               |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

能够看到从库中是有data库的,说明主从复制配置完成,但是要注意,从表里不能做更新,删除等操作,只能使用查询,所以要慎重。

总结:完成以上操作过程,主从服务器配置完成。

原文地址:https://www.cnblogs.com/nsh123/p/8945274.html

时间: 2024-10-10 15:12:18

centos7上mysql5.6版本主从复制的相关文章

CentOS7上编译多版本PHP并同时运行及systemd设置

CentOS7最大改变是systemd代替过去的systemV服务,于是配置服务的方式改变了,用systemctl替代过去的service, chkconfig等命令. 网站搬迁服务器,全新服务器当然用新系统,于是安装上CentOS7. PHP5.4编译参数: ./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --with-layout=GNU --prefix=/usr/local --exec

centos7下mysql5.6的主从复制

一.mysql主从复制介绍 mysql的主从复制并不是数据库磁盘上的文件直接拷贝,而是通过逻辑的binlog日志复制到要同步的服务器本地,然后由本地的线程读取日志里面的sql语句,重新应用到mysql数据库中. mysql数据库支持单向,双向,链式级联,环状等不同业务场景的复制,一台服务器充当主服务器master,接收来自用户的更新,而一个或多个其他服务器充当从服务器slave,接收来自主服务器binlog文件的日志内容,解析出sql,更新到从服务器. 一主一从 (A -> B, A为主,B为从

在 CentOS7 上安装 MySQL5.7

在 CentOS7 上安装 MySQL5.7 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中:cd /usr/local/ 3 创建目录 /usr/local/tools,如果有则忽略: mkdir -p tools 4 创建 /usr/local/mysql 目录,如果已存在则忽略:mkdir -p mysql 5 进入到目录 /usr/local/tools 中:cd tools/ 6 查看系统中是否已安装 MySQL 服务:

MySQL5.1版本的主从复制搭建

MySQL5.1版本的主从复制搭建         [备注]: 主机192.168.250.20 备机192.168.250.40 主从复制 1主机上面已经有了MySQL5.1.53-log版. 2备机上没有mysql数据库,需要在备机上安装MySQL5.1.53-log软件,具体参考svn文档"system\mysql\document\IT_SYS_MySQL_Installation.docx". 3再次确定主服务器与从服务器的MySQL版本一致 Showvariables li

centos7下安装指定版本mysql5.7.23

现在mysql版本已经到MySQL 8.0(GA)稳定版本了,所以需求是想简单又快速在centos7下安装指定版本例如MySQL 5.7(GA)版本有下面这种方法 首先需要到mysql官网这里下载对应RPM包来update一下 1.全新安装MySQL的步骤 我这边是想安装5.7.23版本,然后这个rpm包是最新8.0版本的,这边我就需要做点操作了: 首先,将MySQL Yum存储库添加到系统的存储库列表中.按着这些次序: 在http://dev.mysql.com/downloads/repo/

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

Zabbix3.0的安装.部署.配置,必须基于LAMP环境或是是LNMP环境. 关于LAMP环境的简单快速搭建,见博客:http://afterdawn.blog.51cto.com/7503144/1923139 注意:以下步骤都是在LAMP配置之后进行的. 本文不会再对zabbix-server和zabbix-agent理论知识再进行介绍,建议看完http://afterdawn.blog.51cto.com/7503144/1922502再进行zabbix实战. Zabbix3.0对软硬件

Centos7+Mysql5.7实现主从复制

Centos7+Mysql5.7实现主从复制 在生产用途中为了实现更大的吞吐和高可用可能会对数据库做主从复制或者集群,我们先从主从复制说起. 一.安装配置mysql7: -安装mysql7: http://blog.csdn.net/jiaoshenmo/article/details/50964280 安装好mysql之后启动: service mysqld start 查看mysql初始密码: cat /var/log/mysqld.log | grep 'password' 连接mysql

CentOS7上squid的部署及两种模式(4.1版本)

CentOS7上squid的部署及两种模式(4.1版本) 简介 squid是什么? Squid是一种用来缓冲Internet数据的软件.它接受来自人们需要下载的目标(object)的请求并适当地处理这些请求.也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面.Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求.然后,Squid显式地聚集数据到客户端机器,而且同时复制一份.当下一次有人需要同一页面时,Squid可以简单地

在CentOS7上安装和使用ZooKeeper最新版本(V3.4.11)

0.ZooKeeper文档 http://zookeeper.apache.org/doc/r3.4.11/zookeeperOver.html 1.准备 在CentOS7上安装zookeeper时,如下工具必须要有:wget 如果没有,则进行安装: yum -y install wget 2.下载安装 下载到本地 cd /usr/local/src   wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.11/zooke