首页 > 数据库 >MySQL主从复制

MySQL主从复制

时间:2022-11-08 17:14:42浏览次数:44  
标签:主从复制 slave MySQL server Master MASTER mysql master

MySQL主从复制

主机名称 IP 备注
mysql-master 192.168.175.93 master
mysql-slave 192.168.175.130 slave

  1. 在mysql-master上创建一个复制账号;
  2. mysql-master和mysql-slave上分别设置不同的server_id;
  3. 把主库现有数据备份下来,再恢复到从库;
  4. mysql-slave上执行change master设置主从复制;
  5. mysql-slave上执行start slave启动复制;
  6. 验证 。

step 1 在mysql-master库上创建一个复制用户。

mysql> grant replication slave on *.* to 'rep'@'%' identified by 'C#ssw0rd';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
# 检查创建的rep账号:
mysql> select user,host from mysql.user;

step 2 修改mysql-master和mysql-slave上的server_id,确保不一样。

mysql-master@ubuntu:~# cat /etc/mysql/mysql.conf.d/mysqld.cnf | grep server-id
server-id		= 93
mysql-slave@ubuntu:~# cat /etc/mysql/mysql.conf.d/mysqld.cnf | grep server-id
server-id		= 130

step 3 把主库现有数据备份下来,再恢复到从库,此时两个主机的数据一致。
step 4 设置mysql-slave库是源库的从数据库
master 查看mysql-bin

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

slave执行

mysql>  CHANGE MASTER TO
        MASTER_HOST='192.168.175.130',
        MASTER_PORT=3306,
        MASTER_USER='rep',
        MASTER_PASSWORD='C#ssw0rd',
        MASTER_LOG_FILE='mysql-bin.000008',
        MASTER_LOG_POS=239543;
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

step 4 验证

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.175.93
                  Master_User: rep
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 154
               Relay_Log_File: ubuntu-relay-bin.000002
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
                       ..........
                       ..........
                       ..........
1 row in set (0.00 sec)

主库创建数据库、表、插入语句,发现在从库可以查询,验证完毕。

备注

在主库上加锁,使只有只读权限。
mysql> flush table with read lock;

解锁库:
mysql> unlock tables;

标签:主从复制,slave,MySQL,server,Master,MASTER,mysql,master
From: https://www.cnblogs.com/dagongzhe/p/16870359.html

相关文章

  • MySql -基础学习3 - DML语言
    数据库的意义:数据存储,数据管理DML语言,数据操作语言insert    -  插入update   -  修改delete   -  删除1.插入--插入语句--inse......
  • Mysql常见错误处理(持续更新)
    ERROR1290(HY000):TheMySQLserverisrunningwiththe--skip-grant-tablesoptionsoitcannotexecutethisstatement​mysqladmin: connect to server at '......
  • mysql insert into select锁全表情况分析
    前言  Insertintoselect请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费......
  • 解决 Can't connect to local MySQL server through socket '/tmp/mysql.sock'
    [root@localhostansible-pandora]#mysql-uroot-pEnterpassword:ERROR2002(HY000):Can'tconnecttolocalMySQLserverthroughsocket'/tmp/mysql.sock'(2......
  • MySQL安装
    一,下载选择社区版的,下载地址:https://dev.mysql.com/downloads/installer/ ,选择离线安装包  二,安装1,双击安装包文件,这里选择服务模式服务模式更稳定,支持的连接数......
  • Oracle、MySQL等数据库故障处理优质文章分享 | 10月汇总
    墨天轮社区于9月起持续举办【聊聊故障处理那些事儿】DBA专题征文活动,每月进行评优发奖,鼓励大家记录工作中遇到的数据库故障处理过程,不仅用于自我复盘与分析,同时也能帮助其......
  • 《高性能MySQL》第一章:MySQL架构与历史 读书笔记
    Chapter.1StructureandHistoryofMySQL1.1MySQLlogicalstructureMySQL逻辑架构如上图所示。最上层服务并非mysql独有,大部分基于网络的工具都有类似的C/S架构。第......
  • Sqlyog 连接Mysql数据库连错误: 错误号码2003
      首先是检查了虚拟机网络配置,发现可以ping通说明网络没有问题。dockerrun-p3306:3306--namemysql-v/mydata/mysql/log:/var/log/mysql-v/mydata/mysql/dat......
  • mysql更新某日期为随机日期
    过去的五百天内:SELECTdate_sub(now(),interval(SELECTFLOOR(RAND()*500))DAY)============================================================思路:使用date_add()......
  • mysql 日期查询sql语句
    --今天SELECT*FROM表名WHERETO_DAYS(时间字段名)=TO_DAYS(NOW());--昨天SELECT*FROM表名WHERETO_DAYS(NOW())-TO_DAYS(时间字段名)<=1;--本周SELECT......