数据库主从复制出错处理——筑梦之路
数据库 处理 出错 主从复制 筑梦之路
2023-09-14 09:09:36 时间
报错信息:
Column 2 of table 'test.t1' cannot be converted from type 'varchar(800 octets)' to type 'varchar(600 octets) character set utf8'
数据库版本:mariadb 10.4.22
原因分析:数据库编码不一致导致
问题分析解决过程:
注意:以下操作均不要在主库上做修改的操作,主库只能查询
1.停掉从库的复制
stop slave;
2.切换数据库
use test;
3.查看数据库编码和主库上进行对比
show variables like '%character%';
#此处经过对比发现主库该库的编码都是utf8mb4,从库上有参数不一致
4.从库参数编码值不一致时设置
set character_set_database=utf8mb4;
5.修改编码后验证
#再次查看是否设置成功
show variables like ''%character%;
6.查看出错表的创建sql
show create table t1;
#此处需要和主库上进行对比,发现字段的编码格式不一致
7.手动修改从库上出错表的编码
#修改表的编码格式
ALTER TABLE t1 CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
#修改字段编码 只要字段的类型是varchar的都需要修改编码类型
ALTER TABLE t1 MODIFY COLUMN `CRUSER` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人';
8.修改完成后启动从库复制验证
start slave;
show slave status\G;
相关文章
- java生成mysql数据库建表语句、字段、字段类型、字段注释,可实现不用mysqldump备份数据库「建议收藏」
- SQLServer 错误 617 尝试对数据库 ID %d 中的对象 ID %ld 的描述符进行解哈希运算时,在哈希表中没有找到该描述符。 工作表缺少条目。 请重新运行查询。 如果涉及到游标,请关闭游标,然后重新打开。 故障 处理 修复 支持远程
- MySQL时间类型及获取、展示处理详解数据库
- MySQL主从复制_复制过滤详解数据库
- IP地址管理:MySQL数据库解决方案(ip数据库mysql)
- MySQL字符串查找之路:解决数据库难题(mysql字符串查找)
- 查看Oracle数据库中用户权限的方法(oracle查权限)
- 格式Oracle数据库:处理短日期格式(oracle短日期)
- 处理Oracle数据库备份与恢复指南(oracle数据库的备份)
- 数据库实施正确的Oracle数据库归档策略.(归档oracle)
- 处理Oracle数据库中的Null值(oracle查询null)
- 处理操作指南:使用MSSQL数据库有效管理空间(mssql数据库空间)
- VC编程技巧:使用VC操作MySQL数据库(vc操作mysql数据库)
- 率SQL Server覆盖率:按要求完成数据库迁移(sqlserver覆盖)
- MySQL 数据库表格数据分析与处理(mysql数据库表格数据)
- 当前数据库MSSQL查看当前数据库:获取数据库信息(mssql 查看)
- Oracle数据库中空值的默认处理方式(oracle 默认值 空)
- 请验证:SQL Server 数据库的安全性(请验证sqlserver)
- Oracle数据库处理性能的关键关闭跟踪开关(oracle关闭跟踪开关)
- Oracle数据库使用指南(oracle使用指南)
- Oracle无需输入sid自动连接数据库(oracle不输入sid)
- Oracle数据库百万级优化实现一亿条数据高效处理(oracle一亿数据优化)
- Oracle数据库存储与XML格式交互处理(oracle xml格式)
- php处理上百万条的数据库如何提高处理查询速度