mysql 主从复制配置

主从复制配置

步骤如下:

主服务器:从服务器ip地址分别为

[python] view plain copy

  1. 192.168.145.222、192.168.145.226

1、修改主服务器master:

[python] view plain copy

  1. vi /etc/my.cnf
  2. [mysqld]
  3. log-bin=mysql-bin   #[必须]启用二进制日志
  4. server-id=222      #[必须]服务器唯一ID,默认是1,一般取IP最后一段

2、修改从服务器slave:

[python] view plain copy

  1. vi /etc/my.cnf
  2. [mysqld]
  3. log-bin=mysql-bin   #[不是必须]启用二进制日志
  4. server-id=226      #[必须]服务器唯一ID,默认是1,一般取IP最后一段

3、重启两台服务器的mysql

[python] view plain copy

  1. systemctl restart mariadb

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

[python] view plain copy

  1. mysql
  2. mysql>GRANT REPLICATION SLAVE ON *.* to ‘mysync‘@‘%‘ identified by ‘q123456‘; //一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全。

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

[python] view plain copy

  1. mysql>show master status;
  2. +------------------+----------+--------------+------------------+
  3. | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
  4. +------------------+----------+--------------+------------------+
  5. | mysql-bin.000004 |      308 |              |                  |
  6. +------------------+----------+--------------+------------------+
  7. 1 row in set (0.00 sec)

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

6、配置从服务器Slave:

注意mysql-bin.000004和308是第五步中的File和Position

[python] view plain copy

  1. mysql>change master to master_host=‘192.168.145.222‘,master_user=‘mysync‘,master_password=‘q123456‘,master_log_file=‘mysql-bin.000004‘,master_log_pos=308; //注意mysql-bin.000004和308是第五步中的File和
  2. mysql>start slave; //启动从服务器复制功能

7、检查从服务器复制功能状态:

[python] view plain copy

  1. mysql> show slave status\G
  2. ************************** 1. row ***************************
  3. Slave_IO_State: Waiting for master to send event
  4. Master_Host: 192.168.2.222  //主服务器地址
  5. Master_User: mysync   //授权帐户名,尽量避免使用root
  6. Master_Port: 3306    //数据库端口,部分版本没有此行
  7. Connect_Retry: 60
  8. Master_Log_File: mysql-bin.000004
  9. Read_Master_Log_Pos: 600     //#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos
  10. Relay_Log_File: ddte-relay-bin.000003
  11. Relay_Log_Pos: 251
  12. Relay_Master_Log_File: mysql-bin.000004
  13. Slave_IO_Running: Yes    //此状态必须YES
  14. Slave_SQL_Running: Yes     //此状态必须YES
  15. ......

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

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

9、主从服务器测试:

主服务器Mysql,建立数据库,并在这个库中建表插入一条数据:

[python] view plain copy

  1. mysql> create database hi_db;
  2. Query OK, 1 row affected (0.00 sec)
  3. mysql> use hi_db;
  4. Database changed
  5. mysql>  create table hi_tb(id int(3),name char(10));
  6. Query OK, 0 rows affected (0.00 sec)
  7. mysql> insert into hi_tb values(001,‘bobu‘);
  8. Query OK, 1 row affected (0.00 sec)
  9. mysql> show databases;
  10. +--------------------+
  11. | Database           |
  12. +--------------------+
  13. | information_schema |
  14. | hi_db                |
  15. | mysql                |
  16. | test                 |
  17. +--------------------+
  18. 4 rows in set (0.00 sec)
  19. 从服务器Mysql查询:
  20. mysql> show databases;
  21. +--------------------+
  22. | Database               |
  23. +--------------------+
  24. | information_schema |
  25. | hi_db                 |       //I‘M here,大家看到了吧
  26. | mysql                 |
  27. | test          |
  28. +--------------------+
  29. 4 rows in set (0.00 sec)
  30. mysql> use hi_db
  31. Database changed
  32. mysql> select * from hi_tb;           //查看主服务器上新增的具体数据
  33. +------+------+
  34. | id   | name |
  35. +------+------+
  36. |    1 | bobu |
  37. +------+------+
  38. 1 row in set (0.00 sec)
时间: 2024-10-24 01:18:03

mysql 主从复制配置的相关文章

一.Mysql主从复制配置

在我之前的文章四·安装mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz(基于Centos7源码安装 和 九.mysql数据库多实例安装mysqld_multi [start,stop,report] 两篇文章写到了单太服务器多实例的安装,本篇文章是关于主从复制的配置.本次把mysql3306作为主Master,mysql3307和mysql3308作为Slave 一.启动3台mysql服务器 [[email protected] ~]$ mysqld_multi

mysql主从复制配置操作以及主从宕机切换演练

主从复制目的: 主从服务器设置的稳健性得以提升,如果主服务器发生故障,可以把本来作为备份的从服务器提升为新的主服务器.在主从服务器上分开处理用户的请求,读的话,可以直接读取备机数据,可获得更短的响应时间. 主服务器:IP地址192.168.80.129,mysql已经安装,无用户数据. 从服务器:IP地址192.168.80.130,mysql已经安装. 注:数据库版本必须一致. 1.主从复制配置 修改从服务器的配置文件/etc/my.cnf,在mysqld里添加一下属性 [mysqld] lo

linux mysql主从复制配置

1.设置主库master的servie-id值并且开启bin-log功能参数vi /etc/my.cnf修改my.cnf的参数:[mysqld]server-id=1 //每一个库的server-id必须都不一样log-bin=mysql-bin 2.检查参数是否成功设置并重新启动egrep "server-id|log-bin" /etc/my.cnf重启命令见:mysql安装或mysql数据库多实例 3.登录数据库检查参数的更改情况show variables like 'serv

mysql主从复制配置(精简版)

一.首先准备两台服务器,虚拟机即可,以笔者为例:master:192.168.1.105 slave:192.168.1.106 二.保证两台虚拟机能相互ping通,先把防火墙关闭:service iptables stop 三.安装mysql,可参考笔者linux 快速安装mysql 四.配置主从 编辑/etc/my.cnf文件 (1)配置master 添加如下配置: server-id = 1      #Server标识log-bin            #打开 MySQL 的 Bina

mysql主从复制配置

早就想写一篇关于数据库主从复制的文章,今天利用一些琐碎的时间操作了一遍并记录下来: 首先,我们必须思考,主从复制的大概步骤是什么,即使你不懂数据库这块,我想这个步骤好好想下还是知道的,我们知道数据库是跟用户关联的,那么首先必须建立一个用户,然后授权,这个用户在哪里建立呢?数据来源是主库,当然是在主库里面建立用户了,是的,然后需要利用数据库提供的命令在从库里面对在主库建立的用户一个授权操作,然后就OK了,大概步骤如下: 对于主库 编辑/etc/my.cnf,添加以下内容 vi /etc/my.cn

mysql 主从复制配置详解

主从复制模型配置过程: 备注: 主节点IP地址是192.168.1.106   从节点的ip地址是192.168.1.107: 主节点: (1)启动二进制日志: 1-1 编辑配置文件 vim /etc/my.cnf配置如下所示: [mysqld] log-bin=master-bin server-id=1 innodb-file-per-table=ON skip_name_resolve=ON systemctl start mariadb.service  1-2 进入mysql使用 my

Mysql系列(三)—— Mysql主从复制配置

一.前言 主从复制是Mysql知识体系中非常重的要一个模块.学习主从复制和后续的读写分离是完善只是知识体系的重要环节.且主从复制读写分离的思想并不仅仅局限于Mysql,在很多存储系统中都有该方案,如:redis. 从应用的角度思考,主从复制有如下优点: 可以备份数据,容灾 可以做读写分离,分担单机Mysql节点的压力.master只做write,slave做read 数据归类进行分析计算很耗性能时,可以只在slave节点上进行 一定程度保证可用性,master write节点发生宕机,可以快速切

MySQL主从复制配置遇到的部分问题

网上配置教程很多,我也是参考其他人的教程完成的,主要遇到了以下几个问题,如果以后有人遇到相同的希望能够给大家写提示吧. 1.my.cnf文件配置 Master上的my.cnf中配置的server_id与Slove上的my.cnf中的server_id配置必须不相同 2.Master创建数据同步用户,并授予相应的权限 mysql> grant replication slave, replication client on *.* to 'root'@'192.168.181.13' identi

MYSQL主从复制配置遇到的问题

在进行配置从服务器时遇到的错误. mysql> change master to master_host='192.168.136.129',master_user='repl',master_password='123456',master_log_file='mysql-bin.000003',master_log_pos=2610; ERROR 1201 (HY000): Could not initialize master info structure; more error mess