广告
返回顶部
首页 > 资讯 > 数据库 >mysql主从同步分库分表同步
  • 710
分享到

mysql主从同步分库分表同步

2024-04-02 19:04:59 710人浏览 八月长安
摘要

一、Mysql数据库的安装分别在master 和slave上源码安装mysql数据库1.1 安装相关包1.1.1 cmake软件cd /home/oldboy/tools/tar xf cmake-2.8.

一、Mysql数据库的安装

分别在master 和slave上源码安装mysql数据库

1.1 安装相关包
1.1.1 cmake软件
cd /home/oldboy/tools/
tar xf cmake-2.8.8.tar.gz
cd cmake-2.8.8
./configure
#CMake has bootstrapped.  Now run gmake.
gmake
gmake install
cd ../

1.1.2 依赖包
yum install ncurses-devel -y

1.2 开始安装mysql
1.2.1 创建用户和组
groupadd mysql
useradd mysql -s /sbin/nologin -M -g mysql

1.2.2 解压编译MySQL
tar zxf mysql-5.5.32.tar.gz
cd mysql-5.5.32
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql/mysql-5.5.40 \
-DMYSQL_DATADIR=/application/mysql/mysql-5.5.40/data \
-DMYSQL_UNIX_ADDR=/application/mysql/mysql-5.5.40/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0

#-- Build files have been written to: /home/oldboy/tools/mysql-5.5.32
提示,编译时可配置的选项很多,具体可参考结尾附录或官方文档:
make
#[100%] Built target my_safe_process
make install
ln -s /application/mysql-5.5.32/ /application/mysql
如果上述操作未出现错误,则MySQL5.5.32软件cmake方式的安装就算成功了。

1.3安装数据库成功后

1.3.1 修改mysql安装目录的权限,全部修改为mysql

chown -R mysql:mysql /application/mysql

1.3.2 初始化数据库

cd /application/mysql/scripts

[root@localhost scripts]# ./mysql_install_db --basedir=/application/mysql --datadir=/data/mysql --user=mysql

1.3.3 替换/etc/下的配置文件和数据库的启动文件

/application/mysql/support-files

cp -r my-small.cnf  /etc/my.cnf

cp -r mysql.server  /etc/init.d/mysql

1.4启动数据库

/etc/init.d/mysql  start

/etc/init.d/mysql  stop

/etc/init.d/mysql  restart

二、mysql数据库分库分表的同步

2.1master配置文件

log-bin=mysql-bin

binlog_fORMat=row

server-id       = 15

binlog-do-db=sales

/etc/init.d/mysql  restart(重启数据库)

2.2slave配置文件

server-id       = 25

relay-log=relay-bin
read-only = 1
replicate-do-db = sales

replicate-do-db =user_info

replicate-ignore-db = information_schema
replicate-ignore-db = mysql
replicate-ignore-db = user_info

replicate-do-table =sales.story    // 所要同步的数据库的单个表

/etc/init.d/mysql  restart(重启数据库)

2.3在master上创建同步的用户
 grant replication client,replication slave on *.* to rep@'172.27.1.%' identified by 'passWord';

mysql> show master status\G;
*************************** 1. row ***************************
             File: mysql-bin.000003
         Position: 150
     Binlog_Do_DB: sales,user_info
 Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)

ERROR:
No query specified

2.4在slave上执行如下语句,同步到master

change master to master_host='172.27.1.12'(主库IP地址),master_user='rep',master_password='financial',master_log_file='mysql-bin.000003',master_log_pos=150;

start slave(启动从库)

stop slave(停止从库)

reset slave(重置从库)

启动数据库后查看slave的状态如下:

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 172.27.1.12
                  Master_User: rep
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 150
               Relay_Log_File: relay-bin.000002
                Relay_Log_Pos: 269
        Relay_Master_Log_File: mysql-bin.001603
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: sales
          Replicate_Ignore_DB: information_schema,mysql,user_info
           Replicate_Do_Table: sales.story
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 150
              Relay_Log_Space: 419
              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: 15
1 row in set (0.00 sec)

ERROR:
No query specified

上述表示数据库master and slave 已配置好,可以进行同库单个表的配置


测试

1.分别在master和slave创建数据库sales(row模式下需要手动创建数据库)。

2.use sales库下,在master上创建表

CREATE TABLE user_info (
    PersonID int,
    LastName varchar(255),
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255) 
);

3.在master上创建表

CREATE TABLE story (
    PersonID int,
    LastName varchar(255),
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255) 
);

查看slave同步状态:

a. story表同步成功

b. user_info表同步不成功


则mysql数据库单库,单表同步成功。

如果只是单库同步,则在slave的配置文件中去掉:

replicate-do-table =sales.story    // 所要同步的数据库的单个表

在安装过程中发现从低版本往高版本同步没有问题,从高版本往低版本同步一直出现问题。


三、数据库5.7二进制版本

下载链接:
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
直接解压使用,授权,初始化命令变为:
 bin/mysqld --initialize --user=mysql --basedir=/application/mysql-5.7.18 --datadir=/application/mysql-5.7.18/data

注意:初始化会生成登录数据库的初始密码,要记得保存。







您可能感兴趣的文档:

--结束END--

本文标题: mysql主从同步分库分表同步

本文链接: https://www.lsjlt.com/news/45592.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql主从同步分库分表同步
    一、mysql数据库的安装分别在master 和slave上源码安装mysql数据库1.1 安装相关包1.1.1 cmake软件cd /home/oldboy/tools/tar xf cmake-2.8....
    99+
    2022-10-18
  • MySQL 主从同步与分离
    说明:在实际生产环境中,如果对数据库的读和写都在同一个数据库服务器中操作,无论是在安全性、高可用性,还是高并发等各个方面都是完全不能满足实际需求的,因此,一般来说都是通过主从复制的方式来同步数据,再通过读写...
    99+
    2022-10-18
  • mysql主从只同步部分库或表怎么实现
    今天小编给大家分享一下mysql主从只同步部分库或表怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。同步部分数据有两个...
    99+
    2023-07-02
  • CentOS 7 MySQL5.7 主从只同步部分库或表
      同步部分数据有两个思路: master只发送需要的; 优点:中继日志小;如果多从库,只需要在主库中统一控制  缺点:中途修改比较麻烦,不能控制同步的表 slave只接收想要的 优点:中途修改同步的表或库方便;可以控制...
    99+
    2018-10-18
    CentOS 7 MySQL5.7 主从只同步部分库或表
  • MySQL主从同步部分库跨库问题排查分析
    MySQL主从同步部分库跨库问题排查分析问题:使用复制是设置   Replicate_Do_DB 参数发现跨库操作时从库数据不更新 1 设置从库的 replicate...
    99+
    2022-10-18
  • mysql主从同步
    #!/bin/bash . /etc/rc.d/init.d/functions if [ $# -ne 0 ];then    echo "Usage:sh `basename $0`"    exit 1 fi #MASTER V...
    99+
    2017-01-13
    mysql主从同步
  • MySQL 主从同步。
    Mysql 数据库安装: 服务器IP 地址规划:主服务器 IP 172.20.2.46 从服务器 IP 172.20.2.47 二、安装mysql服务器 1.将下载好的安装到解压到/usr/loca...
    99+
    2022-10-18
  • MySQL 主从同步
    一、概述     原理图如下:     功能: BinLog:二进制文件,存储MasterDB(主数据库)中修改数据的内容,存储内容的格式有Statement,Row,Mixed。 Relay Log:功能作用与Binl...
    99+
    2018-11-12
    MySQL 主从同步
  • Mysql——主从同步
    一、什么是Binlog Mysql的二进制日志可以是Mysql最重要的日志, 记录了所有的DDL和DML语句(除了数据查询语句之外的语句)语句,以事件形式记录,还包含语句所执行的消耗时间,Mysql的二进制日志是事务安全型的。 二进制日志包...
    99+
    2023-10-26
    mysql 数据库 sql
  • mysql主从只同步部分库或表的思路与方法
    同步部分数据有两个思路,1.master只发送需要的;2.slave只接收想要的。 master端: binlog-do-db      二进制日志记录的数据库(多数据库用逗号,隔开) bi...
    99+
    2022-06-23
    mysql主从只同步部分库或表 mysql主从同步多条数据 mysql主从同步配置 超详细
  • MySQL数据库之主从同步
    一、概述:MYSQL主从同步架构是目前使用最多的数据库架构之一,主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(sl...
    99+
    2022-10-18
  • MariaDB、MySQL数据库主从同步
    1、Mysql主从同步异步概念    异步:主服务器写完日志后立即返回同步完成消息,不受从服务器的状态和影响,mysql默认为异步工作模式  &n...
    99+
    2022-10-18
  • MySQL主从同步配置
    Mysql 主从同步原理 就是基于数据库里面的那个 binlog 文件进行数据同步 具体步骤: step1:master将数据改变记录到二进制日志(binary log)中。step2: 当slav...
    99+
    2023-09-09
    mysql
  • mysql 5.7 主从同步 gtid
    环境:1、(主) linux centOS 7 64位2、(从) linux centOS 7 64位3、(mysql)最好要求版本一致,从库不能比主库版本高 建议5.7 centos 7 默然安装mar...
    99+
    2022-10-18
  • MySQL主从同步部署
    主从同步部署1、两台相同版本的mysql数据库,一台做主库,一台从库 主库开启binlog在配置文件中的[mysqld]模块中添加log-bin=mysql-bin和server-id=1,一定要保证两台主...
    99+
    2022-10-18
  • 部署mysql主从同步
    部署mysql主从同步一、什么是mysql主从同步主:正在被客户端访问的数据库服务器,被称作主库服务器。从:自动同步主库上的数据的数据库服务器,被称作从库服务器。 二、配置mysql主从同步2.1 拓扑图数...
    99+
    2022-10-18
  • mysql主从同步异常
    查看主从状态主服务器mysql> show master status;+------------------+-----------+--------------+-----------------...
    99+
    2022-10-18
  • MySQL 主从同步原理
    当涉及到高可用性、负载均衡以及数据备份的需求时,MySQL 主从同步技术是一个非常重要的解决方案。本文将详细介绍 MySQL 主从同步的原理、配置和示例。 一、什么是 MySQL 主从同步? MySQL 主从同步是一种数据库复制技术...
    99+
    2023-09-01
    mysql 数据库
  • mysql主从同步错误Last_SQL_Errno: 1032处理分析
    在MySQL DBA 日常运维工作中,主从同步失败一定是会遇到的,最常见建是1032错误。 ...
    99+
    2022-10-18
  • redis主从同步与读写分离
    一、原理Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。下面是关于redis主从复制的一些特点:...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作