zoukankan      html  css  js  c++  java
  • mysql主从配置

    当主库已有数据时,需要将数据拷贝到从库。同时锁定主数据库,只允许读取不允许写入,这样做的目的是防止备份过程中或备份完成之后有新数据插入,导致备份数据和主数据数据不一致。配置完主从后需要关闭锁。

    1.导出结构不导出数据

    mysqldump -d 数据库名 -uroot -p > xxx.sql

    2.导出数据不导出结构

    mysqldump -t 数据库名 -uroot -p > xxx.sql

    3.导出数据和表结构

    mysqldump 数据库名 -uroot -p > xxx.sql

    4.导出特定表的结构

    导入:mysql -uroot -p 数据库名 < 文件名

     

    锁定、解锁

    flush tables with read lock;  锁表

    unlock tables;   解锁

    主从配置:

    1、主库  mysql.ini
    [mysqld]
    server-id = 1 binlog-do-db=test #要同步的数据库 #binlog-ignore-db=mysql #不同步的数据库,如果指定了binlog-do-db这里应该可以不用指定的 log-bin=mysql-bin #要生成的二进制日记文件名称 # 二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。 expire_logs_days=7 #日志保存时间

    在主服务器上执行show master status;查看状态

    2、从库
    [mysqld] server-id =2 binlog-do-db=test #要同步的数据库 #binlog-ignore-db=mysql #不同步的数据库,如果指定了binlog-do-db这里应该可以不用指定的 log-bin=mysql-bin #要生成的二进制日记文件名称 expire_logs_days=7 #日志保存时间 #slave-skip-errors=1062,1053,1146 #跳过指定error no类型的错误
    3、主库创建一个用于同步的用户
    create user 'synchronoususer'@'%' identified by 'synchronoususer';
    grant replication slave on *.* to 'synchronoususer'@'%';
    flush privileges


    4、从库连接主库
    CHANGE MASTER TO MASTER_HOST='主服务器名字,可以写ip地址', MASTER_USER='
    synchronoususer',
    MASTER_PASSWORD='synchronoususer',
    master_connect_retry=30, --当重新建立主从连接时,如果连接建立失败,间隔多久后重试,单位为秒,默认设置为60秒,同步延迟调优参数 MASTER_LOG_FILE='mysql-bin.000002', --询出的同步文件 MASTER_LOG_POS=120; --查询出的同步点

    5、从库开启同步 start slave

    show slave status; 查看状态,可以看到slave_io_state的值为Waiting for master to send event,从服务器已经在等待接受数据了。

    Slave_IO_running和Slave_SQL_running   都为yes

     

    一些错误情况:

    MySQL版本一个5.5 一个5.6导致

    从库:Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Slave can not h

    主库:[Warning] Master is configured to logreplication events with checksum, but will not send such events to slaves thatcannot process them

    查询值   show variables like'binlog_checksum';  看是否一样,如不一样,则以下处理:

    这是由于mysql5.6 的 binlog_checksum 默认设置的是 CRC32。  5.5 或者更早的版本没有这个变量binlog_checksum。

    5.6版本修改配置文件:添加binlog_checksum=none,然后重启MySQL,重新配置主从步骤

    错误码:1032

    Last_SQL_Error: Could not execute Delete_rows event on table hcy.t1; 

    Can't find record in 't1',

    Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; 

    the event's master log mysql-bin.000006, end_log_pos 254

    解决方法:

    由于master要删除一条记录,而slave上找不到故报错,这种情况主上都将其删除了,那么从机可以直接跳过。可用命令:

    stop slave;

    set global sql_slave_skip_counter=1;

    start slave;

    错误码:1062

    由于主键重复,应该是从库上存在该条记录,主库同步过来就报错了,删除从库该条数据即可。也可以在从库上跳过该类型错误,看业务逻辑。

    一些MySQL常见错误类型

    1005:创建表失败

    1006:创建数据库失败

    1007:数据库已存在,创建数据库失败

    1008:数据库不存在,删除数据库失败

    1009:不能删除数据库文件导致删除数据库失败

    1010:不能删除数据目录导致删除数据库失败

    1011:删除数据库文件失败

    1012:不能读取系统表中的记录

    1020:记录已被其他用户修改

    1021:硬盘剩余空间不足,请加大硬盘可用空间

    1022:关键字重复,更改记录失败

    1023:关闭时发生错误

    1024:读文件错误

    1025:更改名字时发生错误

    1026:写文件错误

    1032:记录不存在

    1036:数据表是只读的,不能对它进行修改

    1037:系统内存不足,请重启数据库或重启服务器

    1038:用于排序的内存不足,请增大排序缓冲区

    1040:已到达数据库的最大连接数,请加大数据库可用连接数

    1041:系统内存不足

    1042:无效的主机名

    1043:无效连接

    1044:当前用户没有访问数据库的权限

    1045:不能连接数据库,用户名或密码错误

    1048:字段不能为空

    1049:数据库不存在

    1050:数据表已存在

    1051:数据表不存在

    1054:字段不存在

    1065:无效的SQL语句,SQL语句为空

    1081:不能建立Socket连接

    1114:数据表已满,不能容纳任何记录

    1116:打开的数据表太多

    1129:数据库出现异常,请重启数据库

    1130:连接数据库失败,没有连接数据库的权限

    1133:数据库用户不存在

    1141:当前用户无权访问数据库

    1142:当前用户无权访问数据表

    1143:当前用户无权访问数据表中的字段

    1146:数据表不存在

    1147:未定义用户对数据表的访问权限

    1149:SQL语句语法错误

    1158:网络错误,出现读错误,请检查网络连接状况

    1159:网络错误,读超时,请检查网络连接状况

    1160:网络错误,出现写错误,请检查网络连接状况

    1161:网络错误,写超时,请检查网络连接状况

    1062:字段值重复,入库失败

    1169:字段值重复,更新记录失败

    1177:打开数据表失败

    1180:提交事务失败

    1181:回滚事务失败

    1203:当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库

    1205:加锁超时

    1211:当前用户没有创建用户的权限

    1216:外键约束检查失败,更新子表记录失败

    1217:外键约束检查失败,删除或修改主表记录失败

    1226:当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器

    1227:权限不足,您无权进行此操作

    1235:MySQL版本过低,不具有本功能

  • 相关阅读:
    CODING x 百果园 _ 水果零售龙头迈出 DevOps 体系建设第一步
    Nocalhost 亮相 CD Foundation 国内首届 Meetup,Keith Chan 将出席致辞
    做云原生时代标准化工具,实现高效云上研发工作流
    打造数字化软件工厂 —— 一站式 DevOps 平台全景解读
    WePack —— 助力企业渐进式 DevOps 转型
    CODING Compass —— 打造行云流水般的软件工厂
    Nocalhost —— 让云原生开发回归原始而又简单
    CODING 代码资产安全系列之 —— 构建全链路安全能力,守护代码资产安全
    Nocalhost:云原生开发新体验
    使用 Nocalhost 开发 Kubernetes 中的 APISIX Ingress Controller
  • 原文地址:https://www.cnblogs.com/fwqblogs/p/11077935.html
Copyright © 2011-2022 走看看