精华内容
下载资源
问答
  • mysql主从数据库不同步
    千次阅读
    2021-03-04 00:21:11

    今天本文将为大家介绍如何解决mysql主从数据库不同步的内容,我们是使用mysql的时候发现主从数据库没有同步,是不是会觉得很疑惑呢?那么下面小编就为大家详细介绍mysql主从数据库不同步的解决方法。

    今天发现Mysql的主从数据库没有同步

    先上Master库:

    mysql>show processlist; 查看下进程是否Sleep太多。发现很正常。

    show master status; 也正常。

    mysql> show master status;

    +-------------------+----------+--------------+-------------------------------+

    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

    +-------------------+----------+--------------+-------------------------------+

    | mysqld-bin.000001 | 3260 | | mysql,test,information_schema |

    +-------------------+----------+--------------+-------------------------------+

    1 row in set (0.00 sec)

    再到Slave上查看

    mysql> show slave status\G

    Slave_IO_Running: Yes

    Slave_SQL_Running: No

    可见是Slave不同步

    下面介绍两种解决方法:

    方法一:忽略错误后,继续同步

    该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况

    解决:

    stop slave;

    #表示跳过一步错误,后面的数字可变

    set global sql_slave_skip_counter =1;

    start slave;

    之后再用mysql> show slave status\G 查看:

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    ok,现在主从同步状态正常了。。。

    方式二:重新做主从,完全同步

    该方法适用于主从库数据相差较大,或者要求数据完全统一的情况

    解决步骤如下:

    1.先进入主库,进行锁表,防止数据写入

    使用命令:

    mysql> flush tables with read lock;

    注意:该处是锁定为只读状态,语句不区分大小写

    2.进行数据备份

    #把数据备份到mysql.bak.sql文件

    [root@server01 mysql]#mysqldump -uroot -p -hlocalhost > mysql.bak.sql

    这里注意一点:数据库备份一定要定期进行,可以用shell脚本或者python脚本,都比较方便,确保数据万无一失

    3.查看master 状态

    mysql> show master status;

    +-------------------+----------+--------------+-------------------------------+

    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

    +-------------------+----------+--------------+-------------------------------+

    | mysqld-bin.000001 | 3260 | | mysql,test,information_schema |

    +-------------------+----------+--------------+-------------------------------+

    1 row in set (0.00 sec)

    4.把mysql备份文件传到从库机器,进行数据恢复

    #使用scp命令

    [root@server01 mysql]# scp mysql.bak.sql root@192.168.128.101:/tmp/

    5.停止从库的状态

    mysql> stop slave;

    6.然后到从库执行mysql命令,导入数据备份

    mysql> source /tmp/mysql.bak.sql

    7.设置从库同步,注意该处的同步点,就是主库show master status信息里的| File| Position两项

    change master to master_host = '192.168.128.100', master_user = 'rsync', master_port=3306, master_password='', master_log_file = 'mysqld-bin.000001', master_log_pos=3260;

    8.重新开启从同步

    mysql> stop slave;

    9.查看同步状态

    mysql> show slave status\G 查看:

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    好了,同步完成啦。

    以上就是如何解决mysql主从数据库不同步的内容,如果你还想了解更多的话后续爱站技术频道小编将会为大家继续扩充知识,大家一起收藏起来吧!

    更多相关内容
  • 今天发现Mysql主从数据库没有同步 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多。发现很正常。 show master status; 也正常。 mysql> show master status; +——————-+———-+————–...
  • mysql>show processlist; 查看下进程是否Sleep太多。发现很正常。 show master status; 也正常。 mysql> show master status; +-------------------+----------+--------------+-----------------------------...

    先上Master库:
    mysql>show processlist; 查看下进程是否Sleep太多。发现很正常。
    show master status; 也正常。
    mysql> show master status;
    +-------------------+----------+--------------+-------------------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +-------------------+----------+--------------+-------------------------------+
    | mysqld-bin.000001 | 3260 | | mysql,test,information_schema |
    +-------------------+----------+--------------+-------------------------------+
    1 row in set (0.00 sec)
    再到Slave上查看
    mysql> show slave status\G
    Slave_IO_Running: Yes
    Slave_SQL_Running: No
    可见是Slave不同步

    下面介绍两种解决方法:

    方法一:忽略错误后,继续同步
    该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况
    解决:
    stop slave;
    #表示跳过一步错误,后面的数字可变
    set global sql_slave_skip_counter =1;
    start slave;
    之后再用mysql> show slave status\G 查看:
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    ok,现在主从同步状态正常了。。。

    方式二:指定跳过错误代码,继续同步

    主键冲突、表已存在等错误代码如1062,1032,1060等,可以在mysql主配置文件指定略过此类异常并继续下条sql同步,这样也可以避免很多主从同步的异常中断

    [mysqld]

    slave-skip-errors = 1062,1032,1060

    重新启动mysql

    service mysqld restart

    之后再用mysql> show slave status\G 查看:
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

    方式三:重新做主从,完全同步
    该方法适用于主从库数据相差较大,或者要求数据完全统一的情况
    解决步骤如下:

    1.先进入主库,进行锁表,防止数据写入
    使用命令:
    mysql> flush tables with read lock;
    注意:该处是锁定为只读状态,语句不区分大小写

    2.进行数据备份
    #把数据备份到mysql.bak.sql文件
    [root@server01 mysql]#mysqldump -uroot -p -hlocalhost > mysql.bak.sql
    这里注意一点:数据库备份一定要定期进行,可以用shell脚本或者python脚本,都比较方便,确保数据万无一失

    3.查看master 状态
    mysql> show master status;
    +-------------------+----------+--------------+-------------------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +-------------------+----------+--------------+-------------------------------+
    | mysqld-bin.000001 | 3260 | | mysql,test,information_schema |
    +-------------------+----------+--------------+-------------------------------+
    1 row in set (0.00 sec)

    4.把mysql备份文件传到从库机器,进行数据恢复
    #使用scp命令
    [root@server01 mysql]# scp mysql.bak.sql root@192.168.128.101:/tmp/

    5.停止从库的状态
    mysql> stop slave;

    6.然后到从库执行mysql命令,导入数据备份

    mysql> source /tmp/mysql.bak.sql

    7.设置从库同步,注意该处的同步点,就是主库show master status信息里的| File| Position两项
    change master to master_host = '192.168.128.100', master_user = 'rsync', master_port=3306, master_password='', master_log_file = 'mysqld-bin.000001', master_log_pos=3260;

    8.重新开启从同步
    mysql> start slave;

    9.查看同步状态
    mysql> show slave status\G 查看:
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

    一般在线增加从库有两种方式,一种是通过mysqldump备份主库,恢复到从库,mysqldump是逻辑备份,数据量大时,备份速度会很慢,锁表的时间也会很长。另一种是通过xtrabackup工具备份主库,恢复到从库,xtrabackup是物理备份,备份速度快,不锁表。为什么不锁表?因为自身会监控主库日志,如果有更新的数据,就会先写到一个文件中,然后再回归到备份文件中,从而保持数据一致性。

    服务器信息:

    主库:192.168.18.212(原有)

    从库1:192.168.18.213(原有)

    从库2:192.168.18.214(新增)

    数据库版本:MySQL5.5

    存储引擎:Innodb

    测试库名:weibo

    一、mysqldump方式

    MySQL主从是基于binlog日志,所以在安装好数据库后就要开启binlog。这样好处是,一方面可以用binlog恢复数据库,另一方面可以为主从做准备。

    原有主库配置参数如下:

    # vi my.cnf

    server-id = 1 #id要唯一

    log-bin = mysql-bin #开启binlog日志

    auto-increment-increment = 1 #在Ubuntu系统中MySQL5.5以后已经默认是1

    auto-increment-offset = 1

    slave-skip-errors = all #跳过主从复制出现的错误

    1. 主库创建同步账号

    mysql> grant all on *.* to 'sync'@'192.168.18.%' identified by 'sync';

    2. 从库配置MySQL

    # vi my.cnf

    server-id = 3 #这个设置3

    log-bin = mysql-bin #开启binlog日志

    auto-increment-increment = 1 #这两个参数在Ubuntu系统中MySQL5.5以后都已经默认是1

    auto-increment-offset = 1

    slave-skip-errors = all #跳过主从复制出现的错误

    3. 备份主库

    # mysqldump -uroot -p123 --routines --single_transaction --master-data=2 --databases weibo > weibo.sql

    参数说明:

    --routines:导出存储过程和函数

    --single_transaction:导出开始时设置事务隔离状态,并使用一致性快照开始事务,然后unlock tables;而lock-tables是锁住一张表不能写操作,直到dump完毕。

    --master-data:默认等于1,将dump起始(change master to)binlog点和pos值写到结果中,等于2是将change master to写到结果中并注释。

    4. 把备份库拷贝到从库

    # scp weibo.sql root@192.168.18.214:/home/root

    5. 在主库创建test_tb表,模拟数据库新增数据,weibo.sql是没有的

    mysql> create table test_tb(id int,name varchar(30));

    6. 从库导入备份库

    # mysql -uroot -p123 -e 'create database weibo;'

    # mysql -uroot -p123 weibo < weibo.sql

    7. 在备份文件weibo.sql查看binlog和pos值

    # head -25 weibo.sql

    -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107; #大概22行

    8. 从库设置从这个日志点同步,并启动

    mysql> change master to master_host='192.168.18.212',

    -> master_user='sync',

    -> master_password='sync',

    -> master_log_file='mysql-bin.000001',

    -> master_log_pos=107;

    mysql> start slave;

    mysql> show slave status\G;

    ERROR 2006 (HY000): MySQL server has gone away

    No connection. Trying to reconnect...

    Connection id: 90

    Current database: *** NONE ***

    *************************** 1. row ***************************

    Slave_IO_State: Waiting for master to send event

    Master_Host: 192.168.18.212

    Master_User: sync

    Master_Port: 3306

    Connect_Retry: 60

    Master_Log_File: mysql-bin.000001

    Read_Master_Log_Pos: 358

    Relay_Log_File: mysqld-relay-bin.000003

    Relay_Log_Pos: 504

    Relay_Master_Log_File: mysql-bin.000001

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    ......

    可以看到IO和SQL线程均为YES,说明主从配置成功。

    9. 从库查看weibo库里面的表

    mysql> show tables;

    +---------------------------+

    | Tables_in_weibo |

    +---------------------------+

    | test_tb |

    发现刚才模拟创建的test_tb表已经同步过来!

    二、xtrabackup方式(推荐)

    在上面配置基础上做实验,先删除掉从库配置:

    mysql> stop slave; #停止同步

    mysql> reset slave; #清除从连接信息

    mysql> show slave status\G; #再查看从状态,可以看到IO和SQL线程都为NO

    mysql> drop database weibo; #删除weibo库

    此时,从库现在和新装的一样,继续前进!

    1. 主库使用xtrabackup备份

    # innobackupex --user=root --password=123 ./

    生成一个以时间为命名的备份目录:2015-07-01_16-49-43

    # ll 2015-07-01_16-49-43/

    total 18480

    drwxr-xr-x 5 root root 4096 Jul 1 16:49 ./

    drwx------ 4 root root 4096 Jul 1 16:49 ../

    -rw-r--r-- 1 root root 188 Jul 1 16:49 backup-my.cnf

    -rw-r----- 1 root root 18874368 Jul 1 16:49 ibdata1

    drwxr-xr-x 2 root root 4096 Jul 1 16:49 mysql/

    drwxr-xr-x 2 root root 4096 Jul 1 16:49 performance_schema/

    drwxr-xr-x 2 root root 12288 Jul 1 16:49 weibo/

    -rw-r--r-- 1 root root 21 Jul 1 16:49 xtrabackup_binlog_info

    -rw-r----- 1 root root 89 Jul 1 16:49 xtrabackup_checkpoints

    -rw-r--r-- 1 root root 563 Jul 1 16:49 xtrabackup_info

    -rw-r----- 1 root root 2560 Jul 1 16:49 xtrabackup_logfile

    2. 把备份目录拷贝到从库上

    # scp -r 2015-07-01_16-49-43 root@192.168.18.214:/home/root

    3. 从库上把MySQL服务停掉,删除datadir目录,将备份目录重命名为datadir目录

    # sudo rm -rf /var/lib/mysql/

    # sudo mv 2015-07-01_16-49-43/ /var/lib/mysql

    # sudo chown mysql.mysql -R /var/lib/mysql

    # sudo /etc/init.d/mysql start

    # ps -ef |grep mysql #查看已经正常启动

    mysql 8832 1 0 16:55 ? 00:00:00 /usr/sbin/mysqld

    4. 在主库创建test_tb2表,模拟数据库新增数据

    mysql> create table test_tb2(id int,name varchar(30));

    5. 从备份目录中xtrabackup_info文件获取到binlog和pos位置

    # cat /var/lib/mysql/xtrabackup_info

    uuid = 201af9db-1fce-11e5-96b0-525400e4239d

    name =

    tool_name = innobackupex

    tool_command = --user=root --password=... ./

    tool_version = 1.5.1-xtrabackup

    ibbackup_version = xtrabackup version 2.2.11 based on MySQL server 5.6.24 Linux (x86_64) (revision id: )

    server_version = 5.5.43-0ubuntu0.12.04.1-log

    start_time = 2015-07-01 16:49:43

    end_time = 2015-07-01 16:49:46

    lock_time = 1

    binlog_pos = filename 'mysql-bin.000001', position 429 #这个位置

    innodb_from_lsn = 0

    innodb_to_lsn = 1598188

    partial = N

    incremental = N

    format file

    compact = N

    compressed = N

    6. 从库设置从这个日志点同步,并启动

    mysql> change master to master_host='192.168.18.212',

    -> master_user='sync',

    -> master_password='sync',

    -> master_log_file='mysql-bin.000001',

    -> master_log_pos=429;

    mysql> start slave;

    mysql> show slave status\G;

    *************************** 1. row ***************************

    Slave_IO_State: Waiting for master to send event

    Master_Host: 192.168.18.212

    Master_User: sync

    Master_Port: 3306

    Connect_Retry: 60

    Master_Log_File: mysql-bin.000001

    Read_Master_Log_Pos: 539

    Relay_Log_File: mysqld-relay-bin.000002

    Relay_Log_Pos: 363

    Relay_Master_Log_File: mysql-bin.000001

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    ......

    可以看到IO和SQL线程均为YES,说明主从配置成功。

    9. 从库查看weibo库里面的表

    mysql> show tables;

    +---------------------------+

    | Tables_in_weibo |

    +---------------------------+

    | test_tb |

    | test_tb2 |

    转载于:https://blog.51cto.com/6226001001/1675105

    展开全文
  •  做主从服务器的原则是,MYSQL版本要相同,如果能满足,最起码从服务器的MYSQL的版本必须高于主服务器的MYSQL版本 二、配置master服务器 1. 登录Master服务器,编辑my.cnf #vim /etc/my.cnf 在[mysqld]段添加...
  • mysql设置主从数据库同步

    千次阅读 2021-12-16 11:14:28
    这个时候 就需要做高可用,在数据库的处理上如果两个mysql实现高可用,避免单点问题。 场景2:读写分离;master写,其他slave读,这种架构最大问题I/O压力集中在Master上; 场景3:通过复制实现数据的异地备份 可以...

    1.业务场景

    • 场景1:实现服务器负载均衡
      若我们所有的业务代码存于一个服务器上,而这个服务器有的时候回宕机,导致业务停顿,造成影响。这个时候 就需要做高可用,在数据库的处理上如果两个mysql实现高可用,避免单点问题。
    • 场景2:读写分离;master写,其他slave读,这种架构最大问题I/O压力集中在Master上;
    • 场景3:通过复制实现数据的异地备份
      可以定期的将数据从主服务器上复制到从服务器上,这无疑是先了数据的异地备份。在传统的备份体制下,是将数据备份在本地。此时备份 作业与数据库服务器运行在同一台设备上,当备份作业运行时就会影响到服务器的正常运行。有时候会明显的降低服务器的性能。同时,将备份数据存放在本地,也 不是很安全。如硬盘因为电压等原因被损坏或者服务器被失窃,此时由于备份文件仍然存放在硬盘上,数据库管理员无法使用备份文件来恢复数据。这显然会给企业 带来比较大的损失。

    2.实现的目标

    一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。对于多级复制,数据库服务器即可充当主机,也可充当从机。
    一句话表示就是,主数据库做什么,从数据库就跟着做什么。

    3.原理

    我们的主从复制基于Mysql Replication来进行实现

    3.1 什么是Mysql Replication

    Replication可以实现将数据从一台数据库服务器(master)复制到一台或多台数据库服务器(slave)

    • 默认情况下属于异步复制,无需维持长连接
    • 通过配置,可以复制所有的库或者几个库,甚至库中的一些表
    • 是MySQL内建的,本身自带的

    3.2 Mysql Replication的原理

    简单的说就是master将数据库的改变写入二进制日志,slave同步这些二进制日志,并根据这些二进制日志进行数据操作。
    在这里插入图片描述

    注意:

    • DML表示SQL操作语句如:update, insert,delete
    • Relay log :中继日志

    整体上来说,复制有3个步骤:
    (1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events)
    (2) slave将master的binary log events拷贝到它的中继日志(relay log)
    (3) slave重做中继日志中的事件,修改salve上的数据。

    3.3 My Replication的作用

    • Fail Over 故障切换
    • Backup Server 备份服务,无法对SQL语句执行产生的故障恢复,有限的备份
    • High Performance 高性能,可以多台slave,实现读写分离
      在这里插入图片描述

    3.4 MySQL主从复制

    第一步:master记录二进制日志

    在每个事务更新数据完成之前,master在二进制日志记录这些改变。MySQL将事务写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,master通知存储引擎提交事务。

    第二步:slave将master的binary log拷贝到它自己的中继日志

    首先,slave开始一个工作线程—I/O线程。I/O线程在master上打开一个普通的连接,然后开始binlog dump process。Binlog dump process从master的二进制日志中读取事件,如果已经执行完master产生的所有文件,它会睡眠并等待master产生新的事件。I/O线程将这些事件写入中继日志。

    第三步:SQL slave thread(SQL从线程)处理该过程的最后一步

    SQL线程从中继日志读取事件,并重新执行其中的事件而更新slave的数据,使其与master中的数据一致。

    4 My Replication常见方案

    One master and Muti salve 一主多备(MS)

    在这里插入图片描述

    一般用来做读写分离的,master写,其他slave读,这种架构最大问题I/O压力集中在Master上<多台同步影响IO>

    M-S-S

    使用一台slave作为中继,分担Master的压力,slave中继需要开启bin-log,并配置log-slave-updates
    在这里插入图片描述

    Slave中继可使用Black-hole存储引擎,不会把数据存储到磁盘,只记录二进制日志。

    M-M 双主互备(互为主从)

    每个服务器需要做同样的同步更新,破坏了事物的隔离性和数据的一致性。
    在这里插入图片描述

    M-M-M

    监控三台机器互相作对方的master
    在这里插入图片描述

    天生的缺陷:复制延迟,slave上同步要慢于master,如果大并发的情况那延迟更严重。
    mysql在5.6已经自身可以实现fail over故障切换

    One slave Muti master 一从对多主

    好处:节省成本,将多个master数据自动化整合
    缺陷:对库和表数据的修改较多

    5.实现

    5.1 环境准备

    本地安装两个mysql,或者使用虚拟机,或者使用docker安装,需要准备两个mysql,本文使用docker安装
    在docker中先创建两个mysql服务器
    主服务器:3308
    从服务器:3309
    在这里插入图片描述

    不会创建?点击此处

    5.2 修改 my.cnf配置文件

    • master的my.cnf配置文件
    
    #mysql master1 config 
    [mysqld]
    server-id = 1        # 节点ID,确保唯一
    
    # log config
    log-bin = mysql-bin     #开启mysql的binlog日志功能
    sync_binlog = 1         #控制数据库的binlog刷到磁盘上去 , 0 不控制,性能最好,1每次事物提交都会刷到日志文件中,性能最差,最安全
    binlog_format = mixed   #binlog日志格式,mysql默认采用statement,建议使用mixed
    expire_logs_days = 7                           #binlog过期清理时间
    max_binlog_size = 100m                    #binlog每个日志文件大小
    binlog_cache_size = 4m                        #binlog缓存大小
    max_binlog_cache_size= 512m              #最大binlog缓存大
    binlog-ignore-db=mysql #不生成日志文件的数据库,多个忽略数据库可以用逗号拼接,或者 复制这句话,写多行
    
    auto-increment-offset = 1     # 自增值的偏移量
    auto-increment-increment = 1  # 自增值的自增量
    slave-skip-errors = all #跳过从库错误
    
    
    • slave1的my.cnf配置文件
    [mysqld]
    server-id = 2
    log-bin=mysql-bin
    relay-log = mysql-relay-bin
    replicate-wild-ignore-table=mysql.%
    replicate-wild-ignore-table=test.%
    replicate-wild-ignore-table=information_schema.%
    

    6.进入master数据库,创建复制用户并授权

    依次执行

    CREATE USER repl_user IDENTIFIED BY 'root';
    CREATE USER 'repl_user'@'172.17.0.1' IDENTIFIED BY 'root';
    CREATE USER 'repl_user'@'192.168.1.2' IDENTIFIED BY 'root';
    

    root表示该用户的用户密码
    在这里插入图片描述

    你只需要修改的是将 192.168.1.2改为你自己主机的ip地址即可
    查看自己创建用户是否成功

     SELECT User, Host FROM mysql.user;
    

    在这里插入图片描述

    6.1 赋予该用户复制的权利

    依次执行

    grant replication slave on *.* to 'repl_user'@'%';
    grant replication slave on *.* to 'repl_user'@'172.17.0.1';
    grant replication slave on *.* to 'repl_user'@'192.168.1.2';
    
    FLUSH PRIVILEGES;
    

    在这里插入图片描述
    注意:我们接下来进行一个很重要的步骤,就是修改主库repl_user的plugin
    依次执行以操作:

    alter user 'repl_user'@'%' identified with mysql_native_password by 'root';
    alter user 'repl_user'@'172.17.0.1' identified with mysql_native_password by 'root';
    alter user 'repl_user'@'192.168.1.2' identified with mysql_native_password by 'root';
    

    在这里插入图片描述

    6.2 查看master的状态

    show master status;
    

    在这里插入图片描述

    7.配置从库

    登录进入从库的mysql服务内执行以下命令

    CHANGE MASTER TO 
    MASTER_HOST = 'localhost',  
    MASTER_USER = 'repl_user', 
    MASTER_PASSWORD = 'root',
    MASTER_PORT = 3308,
    MASTER_LOG_FILE='binlog.000002',
    MASTER_LOG_POS=1374,
    MASTER_RETRY_COUNT = 60,
    MASTER_HEARTBEAT_PERIOD = 10000; 
    

    在这里插入图片描述

    注意你要修改以下内容:
    在这里插入图片描述

    7.1 启动从库slave进程

    start slave;
    

    附:停止从库进程:stop slave;
    在这里插入图片描述

    7.2 查看是否配置成功

    show slave status\G
    

    在这里插入图片描述

    当这两个信息 都为yes时说明你配置成功啦。

    8.测试主从同步

    我用navicat连接到主库和从库
    在这里插入图片描述

    接下来我先在master中创建一个数据库test1
    在这里插入图片描述

    然后刷新salve
    然后会发现salve中也会出现一个test1数据库
    在这里插入图片描述

    至此我们的主从同步就完全实现了

    展开全文
  • 主从数据库同步失败提示: 1146 数据库表存在的问题

    提示错误1146

    在这里插入图片描述
    根据错误提示, 表不存在
    网上普遍说的都是编码不一致, 数据能只要是正常可以新增插入, 跟编码其实关系就不大

    仔细看错误提示, 前面加上了数据库名称 [data_for_kline], 其实这个可能是错误的根本原因
    当多个主库同步到一个从库中 / 主库与从库的库名称不一致
    主库的 增删改 带上了数据库名称, 同步语句也会带上, 这样就出错了

    展开全文
  • MySQL主从同步是目前使用比较广泛的数据库架构,技术比较成熟,配置也复杂,特别是对于负载比较大的网站,主从同步能够有效缓解数据库读写的压力。 MySQL主从同步的机制: MySQL同步的流程大致如下:  1、主...
  • 主从同步: (1) 数据库建立主库和从库,从库是主库的备份 (2)主库数据更新,从库数据也要随之更新 (3)主库和从库的物理地址不同,可以...主从数据库数据不同步问题: (1) 问题:主库数据的更新没有及时更新到从库 ..
  • 构建MySQL主从数据库

    2021-12-01 08:16:56
    一、MySQL主从数据库的介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的。 MySQL主从是基于binlog的,主上须开启binlog才能...
  • Mysql 主从数据库同步(centos篇),需要的朋友可以参考下。
  • 本文实例讲述了MySQL主从数据库搭建方法。分享给大家供大家参考,具体如下: 主从服务器是mysql实时数据同步备份的一个非常好的方案了,现在各大中小型网都都会使用mysql数据库主从服务器功能来对网站数据库进行异步...
  • MySQL两个服务器进行数据同步 Master 主服务器配置 首先找到MySQL配置文件的路径,mysql-bin-my.ini,复制一份,并改名进行备份 在my.ini文件中添加以下代码 port=3306 #mysql的端口号 server-id=1 #服务器唯一id 保证...
  • MySql主从数据库设置

    2022-06-02 11:07:46
    为项目数据库服务器故障提供一种方案--主从数据库设置
  • MySQL 主从数据库同步失败之后,修复方法。
  • mysql 主从数据库服务器的设置 核心提示MySQL主从服务器Replication的设置1.首先在主服务器上为从服务器建立一个账户2.登录从服务器使用步骤一申请的用户名和密码访问主数据库如果可以访问代表建立用户成功 MySQL...
  • mysql数据库主从同步

    2022-06-16 23:33:33
    mysql主从同步
  • 下面简单说下mysql主从服务器配置的过程。 首先需要在同一个局域网内的两台机器(当然也可以用一台机器虚拟两台机器出来),都安装上mysql服务。 主机A: 192.168.1.100 从机B: 192.168.1.101 可以有多台从机。 1、先...
  • mysql主从数据库不同步的2种解决方法(转)
  • 接着上文 配置完Mysql 主从之后,在使用中可能会出现主从同步失败的情况。mysql>show slave status\GSlave_IO_Running: YesSlave_SQL_Running: No可见是Slave不同步。下面介绍两种解决方法:方法一:忽略错误后,...
  • 一、 概念: ① 数据库同步 (主从同步 — 主数据库写的同时 往从服务器写数据)② 数据库同步 (主主同步 — 两台数据库服务器互相写数据) 二、 举例数据库服务器(A) 主数据库 IP:192.168.1.134数据库服务器...
  • 本文实例讲述了PHP实现的mysql主从数据库状态检测功能。分享给大家供大家参考,具体如下: 实例: <?php /** * 检测多个主从数据库是否挂掉 * 建立从数据库$slave_db的二维数组,内容包含每个从服务器的配置...
  • 在LAMP架构中,我们一般使用MySQL作为数据库,而MySQL主从也是MySQL主从复制一般情况下我们会设置需要同步数据库,使用参数配置选项,binlog-do-db,可以在master上指定需要同步数据库,replicate-do-db在从数据...
  • MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对MySQL有更高性能、更高可靠性要求的场合。与之对应的是另一个同步技术是MySQL Cluster,但因为MySQL Cluster...
  • 高可用MySql主从数据库

    千次阅读 2022-04-10 10:50:04
    一、主从数据库 docker pull mysql:5.7 mysql版本问题: mysql:5.7:可能登录会麻烦 mysql:8+:要弄驱动,还要改密码校验方式 综合来说是5.7 注:本文认为你已经会了docker,linux和mysql基本操作 1、主库搭建...
  • docker搭建mysql主从数据库

    千次阅读 2021-11-24 22:42:58
    主库操作: 首先需要在主库创建数据同步用户,授予用户 REPLICATION SLAVE和REPLICATION CLIENT权限,用于在主从库之间同步数据。 docker exec -it aiden-mysql /bin/bash mysql -uroot -p create user 'slave'@'%' ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 96,832
精华内容 38,732
关键字:

mysql主从数据库不同步

mysql 订阅