mysql 修改时间段内_详解mysql数据库MyISAM存储引擎如何转为Innodb及其中的注意点...
概述
mysql数据库存储引擎为MyISAM的时候,在大访问量的情况下数据表有可能会出现被锁的情况,这就会导致用户连接网站时超时而返回502,此时就需要MySQL数据库MyISAM存储引擎转为Innodb。
今天主要分享最近对某个数据库做的数据迁移,其中包括存储引擎转换、数据库编码转换。
思路:
1)导出旧数据库表结构
2)修改引擎为innodb
3)导入旧数据库表结构到新数据库
4)非工作时间段停应用、导出旧数据库数据(不导表结构)
5)导入旧数据库数据(sql_mode调整)
6)调整新数据库编码为utf8mb4
1、导出CentOS数据库的表结构和表数据
--导出表结构(-d参数表示不导出数据,只导出表结构)mysqldump -d -h xx.xx.xx -uroot -p zentao > zentao_table.sql--导出表数据(-t参数表示只导数据,不导表结构)mysqldump -t -h xx.xx.xx -uroot -p zentao > zentao_tabledata.sql
2、修改数据库引擎
这里替换 zentao_table.sql里的MyISAM为INNODB
sed -i 's/MyISAM/INNODB/g' zentao_table.sql
3、新建数据库centos_new,并导入表结构
--为了避免迁移由于编码问题导致太多不稳定因素,先建为utf8mysql -uroot -p -e 'create database zentao default character set utf8;' mysql -uroot -p zentao < zentao_table.sql
导入后通过show table status来检查表引擎是否为INNODB。
4、导入数据
这里导入数据时要注意sql_mode级别,有一些日期类型可能是0000-00-00格式,所以需去掉no_zero_date参数
最终sql_mode级别为:sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
mysql -uroot -p zentao < zentao_tabledata.sql
导入成功。
5、转换数据库编码
这里的思路是:导出目的数据库表结构sql-->手动修改sql编码为utf8mb4-->导入中间数据库(只存放修改后的表结构)-->从中间库到目的数据库做结构同步
迁移后应用连接,功能测试成功。
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
mysql 修改时间段内_详解mysql数据库MyISAM存储引擎如何转为Innodb及其中的注意点...相关推荐
- mysql临键锁_详解 MySql InnoDB 中的三种行锁(记录锁、间隙锁与临键锁)
详解 MySql InnoDB 中的三种行锁(记录锁.间隙锁与临键锁) 前言 InnoDB 通过 MVCC 和 NEXT-KEY Locks,解决了在可重复读的事务隔离级别下出现幻读的问题.MVCC ...
- mysql通配符escape使用_详解MySQL like如何查询包含'%'的字段(ESCAPE用法)
在SQl like语句中,比如 SELECT * FROM user WHERE username LIKE '%luchi%' SELECT * FROM user WHERE username L ...
- mysql通配符escape使用_详解MySQL like如何查询包含#39;%#39;的字段(ESCAPE用法)-MySQL教程-Web开发者网...
在SQl like语句中,比如 SELECT * FROM user WHERE username LIKE '%luchi%' SELECT * FROM user WHERE username L ...
- mysql mgr 三节点_详解MySQL 5.7 MGR单主确定主节点方法
我们行MGR年底要上线了,每天都要看官方文档学习,做测试,坚持每天写一个小知识点,有想一起学习的么~ MySQL 5.7 MGR单主确定主节点是哪个,我们可以通过成员ID来判断,然后结合read_on ...
- mysql 的dcl语句_详解MySQL第三篇—DCL语句
DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句.这些语句定义了数据库.表.字段.用户的访问权限和安全级别.主要的语句关键字包括 g ...
- mysql update 并发 慢_详解Mysql的锁机制
一.Mysql为什么要加锁 锁机制用于管理对共享资源的并发访问,是对数据库的一种保护机制,也是数据库在事务操作中保证事务数据一致性和完整性的一种机制.当有多个用户并发的去存取数据时,在数据库中就可能会 ...
- 操作 mysql 不生成日志_详解MySQL的日志
MySQL日志 MySQL的日志记录了MySQL的日常操作和错误信息,通过这些日志我们可以知道MySQL内部发生的事情,可以为MySQL的优化和管理提供必要的信息. MySQL的日志主要有:二进制日志 ...
- mysql 主键溢出检查_详解MySQL 表中非主键列溢出情况监控
今天,又掉坑了. 之前踩到过MySQL主键溢出的情况,通过prometheus监控起来了. 这次遇到的坑,更加的隐蔽. 是一个log表里面的一个int signed类型的列写满了.快速的解决方法当然还 ...
- mysql事件调度定时任务_详解MySQL用事件调度器Event Scheduler创建定时任务
前言 事件调度器相当于操作系统中的定时任务(如:Linux中的cron.Window中的计划任务),但MySql的事件调度器可以精确到秒,对于一些实时性要求较高的数据处理非常有用. 1. 创建/修改事 ...
最新文章
- mongodb 3.2性能测试
- .Net Core使用Ocelot网关(二) -鉴权认证
- Delphi XE2获取汉字拼音首字母
- [js] AudioContext有什么应用场景?
- oracle表复制为mysql表_oracle 将数据库的表复制到另一个数据库表内
- 使用recyclerView实现无限循环banner效果
- 多线程处理同一批数据_C#中多线程的那点事-多线程的代价
- Eureka 微服务注册中心搭建
- 做开源 18 年,他想把中国开源带向世界 | 人物志
- java父类可以强转为子类吗_java父类可以强制转化成子类吗?
- 小米随身wifi没有网络显示无服务器,小米随身wifi创建失败如何解决_小米随身wifi网络创建失败的解决教程...
- 软件工程 可行性分析与需求分析
- 要做就做明链,这才是堂堂正正的优化之路,不要走捷径
- [译] Oracle Database 21c 中的 SQL 集合运算符增强功能(EXCEPT、EXCEPT ALL、MINUS ALL、INTERSECT ALL)
- 一个ETF基金经理的心路历程
- 用Java写linux命令行cd,java执行linux命令cd
- 循环冗余校验-CRC
- 如何抓取BT天堂电影数据
- 海伦公式已知三边求面积
- 生产者-消费者中的缓冲区:BlockingQueue接口