一 简介:此文汇总mysql不常见的数据库的操作
二 mysql表修改最大自增ID
目的: 修复canal相关问题
语法: alter table a AUTO_INCREMENT=num;
执行速度: 自增ID的最大值都在内存中,所以更改是秒级,不用担心速度
三 更改分区表联合主键操作
目的: 给分区表联合主键增加自增属性
语法: alter table test1 change column id id int auto_increment;
注意: 联合主键添加自增属性,自增列必须在第一位,否则会有问题
四 更改mysql字符集
目的: 给原来的老数据库将默认字符集更新成utf9
语法: set global character_set_server=utf8 可在线修改
注意: 修改字符集对于数据库本身可能造成问题,一定要进行测试
五 mysql类型互相转化问题
目的:blob类型转换为char类型 oracle 迁移数据,oracle的blob存储到mysql的blob类型,然后再进行char转化
语法 select CAST(content AS CHAR(10000) CHARACTER SET utf8) from t_bonus_code_log
注意: 有可能blob输出会有乱码,可以调整字符集试试
六 mysql 错误日志记录
5.6 log_warnings 默认为1
log_warnings 为0, 表示不记录告警信息。
log_warnings 为1, 表示告警信息写入错误日志。
log_warnings 大于1, 表示各类告警信息,例如有关网络故障的信息和重新连接信息写入错误日志。
5.7 log_error_verbosity 默认值看版本号 可能为1 或者 2
log_error_verbosity 为 0,表示 不记录告警信息
log_error_verbosity 为1 表示记录 错误日志
log_error_verbosity 为2 表示记录错误日志和告警日志
log_error_verbosity 为 3 表示记录错误日志 告警日志和note日志
大家可以根据实际场景进行灵活调整,另外5.7的这个参数将在8.0被移除
七 mysql 大小写相关
表级别: mysql默认是区分大小写的,所针对的是表名 参数为 lower_case_table_names,请注意该参数为只读参数,需要重启数据库才能进行修改生效
数据级别: mysql查询语句查询数据本身是不区分大小写的,如果需要区分大小写
1 在条件前面加上binary参数 例如 binary aa='A';
2 建表时在指定列前加上binary参数
待补充