• mysql主从复制之同步部分库表


    这里以mariadb为例,和mysql一样的配置

    系统:centos7

    主服务器:192.168.0.1:3305(两台服务器都做过时间同步)

    从服务器:192.168.0.2:3306(两台服务器都做过时间同步)

    同步的库表:testadmin库下的user表和order表

    *安装mariadb

     1 #卸载旧数据库
     2 yum remove mysql mysql-server mysql-libs compat-mysql51
     3 #添加mariadb源
     4 vi /etc/yum.repos.d/MariaDB.repo
     5     [mariadb]
     6     name = MariaDB
     7     baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.1/centos7-amd64/
     8     gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
     9     gpgcheck=1
    10 rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    11 #安装mariadb
    12 yum -y install MariaDB-server MariaDB-client
    13 #启动
    14 systemctl start mariadb

    *设置数据库密码和远程登录

    #root密码为123456
    mysqladmin -u root password 123456
    #设置远程登录
    mysql -uroot -p123456
    >grant all on *.* to root@'%' identified by '123456' with grant option;
    >flush privileges;

    *主服务器(192.168.0.1)

    [mysqld]
    port=3305 #这里的端口如果不是默认的3306,那么在从服务器上执行的命令就会加上master_port=3305 bind
    -address=0.0.0.0 server-id=1 #设置优先级,主必须小于从 log-bin=mysql-bin log-slave-updates=true
    #重启
    systemctl restart mariadb
    #配置连接从服务器,连接的用户是test,密码为123
    mysql -uroot -p123456
    >grant replication client,replication slave on *.* to test@'192.168.0.2' identified by '123'; #这里地址可以写成192.168.0.%,表示这个网段的从数据库都可以连接到
    >flush privileges;
    >show master status; #记下file和Position,下面从服务器配置需要,例如mysql-bin.000006  600

    *从服务器(192.168.0.2)

    [mysqld]
    bind-address=0.0.0.0
    server-id=2
    relay-log=relay-bin
    #需要同步的表
    replicate-wild-do-table = testadmin.user
    replicate-wild-do-table = testadmin.order
    #重启
    systemctl restart mariadb
    #配置连接主服务器
    mysql -uroot -p123456
    >change master to master_host='192.168.0.1',master_user='test',master_password='123',master_port=3305,MASTER_LOG_FILE='mysql-bin.000006',MASTER_LOG_POS=600; #一般默认是3306,可以不写这个端口配置,只是遇到特殊情况就需要加上master_port
    >flush privileges;

    *验证

    #从服务器上
    mysql -uroot -p123456
    >start slave;  #若要重新设置连接,必须要先停掉stop slave
    >show slave status G;
    .
    .
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    .
    .
    #表示连接成功
    #然后再到主数据库指定库里操作指定表,从数据库上的表也会跟着改变,但是如果修改其他未指定的库或者表,从数据库上并不会同步修改,当然,如果是直接在从数据库上修改任何表,主数据库并不会有任何变化

     *其他操作

    #如果同步出现某个错误,但是想要忽略当前这个错误,那么执行
    stop slave;
    set global sql_slave_skip_counter=1;
    start slave;
    
    #如果想要一直忽略某种错误,就更新这样的配置并重启
    [mysqld]
    slave_skip_errors = 1062,1032,1049  #表示忽略code为1062、1032和1049的错误
  • 相关阅读:
    如何通过WallpaperManager(壁纸管理器)设置与修改壁纸?
    Android 4.0 Launcher2源码分析——主布局文件(转)
    android 国际化 横屏(land) 竖屏(port)margin外边距和padding内边距
    轻量数据库SQLiteDataBase的相关操作方法
    Gradle sync failed: Could not find method android() for arguments 错误的解决办法
    本地Gradle配置方法,免去长时间的更新同步等待
    Android Studio and Gradle安装心得
    Error:CreateProcess error=216的错误,JDK版本不匹配问题。
    Docker部署nginx+springboot-web项目
    使用python完成对excel的操作
  • 原文地址:https://www.cnblogs.com/chy-op/p/10731126.html
Copyright © 2020-2023  润新知