概述

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及其中的注意点...相关推荐

  1. mysql临键锁_详解 MySql InnoDB 中的三种行锁(记录锁、间隙锁与临键锁)

    详解 MySql InnoDB 中的三种行锁(记录锁.间隙锁与临键锁) 前言 InnoDB 通过 MVCC 和 NEXT-KEY Locks,解决了在可重复读的事务隔离级别下出现幻读的问题.MVCC  ...

  2. mysql通配符escape使用_详解MySQL like如何查询包含'%'的字段(ESCAPE用法)

    在SQl like语句中,比如 SELECT * FROM user WHERE username LIKE '%luchi%' SELECT * FROM user WHERE username L ...

  3. mysql通配符escape使用_详解MySQL like如何查询包含#39;%#39;的字段(ESCAPE用法)-MySQL教程-Web开发者网...

    在SQl like语句中,比如 SELECT * FROM user WHERE username LIKE '%luchi%' SELECT * FROM user WHERE username L ...

  4. mysql mgr 三节点_详解MySQL 5.7 MGR单主确定主节点方法

    我们行MGR年底要上线了,每天都要看官方文档学习,做测试,坚持每天写一个小知识点,有想一起学习的么~ MySQL 5.7 MGR单主确定主节点是哪个,我们可以通过成员ID来判断,然后结合read_on ...

  5. mysql 的dcl语句_详解MySQL第三篇—DCL语句

    DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句.这些语句定义了数据库.表.字段.用户的访问权限和安全级别.主要的语句关键字包括 g ...

  6. mysql update 并发 慢_详解Mysql的锁机制

    一.Mysql为什么要加锁 锁机制用于管理对共享资源的并发访问,是对数据库的一种保护机制,也是数据库在事务操作中保证事务数据一致性和完整性的一种机制.当有多个用户并发的去存取数据时,在数据库中就可能会 ...

  7. 操作 mysql 不生成日志_详解MySQL的日志

    MySQL日志 MySQL的日志记录了MySQL的日常操作和错误信息,通过这些日志我们可以知道MySQL内部发生的事情,可以为MySQL的优化和管理提供必要的信息. MySQL的日志主要有:二进制日志 ...

  8. mysql 主键溢出检查_详解MySQL 表中非主键列溢出情况监控

    今天,又掉坑了. 之前踩到过MySQL主键溢出的情况,通过prometheus监控起来了. 这次遇到的坑,更加的隐蔽. 是一个log表里面的一个int signed类型的列写满了.快速的解决方法当然还 ...

  9. mysql事件调度定时任务_详解MySQL用事件调度器Event Scheduler创建定时任务

    前言 事件调度器相当于操作系统中的定时任务(如:Linux中的cron.Window中的计划任务),但MySql的事件调度器可以精确到秒,对于一些实时性要求较高的数据处理非常有用. 1. 创建/修改事 ...

最新文章

  1. mongodb 3.2性能测试
  2. .Net Core使用Ocelot网关(二) -鉴权认证
  3. Delphi XE2获取汉字拼音首字母
  4. [js] AudioContext有什么应用场景?
  5. oracle表复制为mysql表_oracle 将数据库的表复制到另一个数据库表内
  6. 使用recyclerView实现无限循环banner效果
  7. 多线程处理同一批数据_C#中多线程的那点事-多线程的代价
  8. Eureka 微服务注册中心搭建
  9. 做开源 18 年,他想把中国开源带向世界 | 人物志
  10. java父类可以强转为子类吗_java父类可以强制转化成子类吗?
  11. 小米随身wifi没有网络显示无服务器,小米随身wifi创建失败如何解决_小米随身wifi网络创建失败的解决教程...
  12. 软件工程 可行性分析与需求分析
  13. 要做就做明链,这才是堂堂正正的优化之路,不要走捷径
  14. [译] Oracle Database 21c 中的 SQL 集合运算符增强功能(EXCEPT、EXCEPT ALL、MINUS ALL、INTERSECT ALL)
  15. 一个ETF基金经理的心路历程
  16. 用Java写linux命令行cd,java执行linux命令cd
  17. 循环冗余校验-CRC
  18. 如何抓取BT天堂电影数据
  19. 海伦公式已知三边求面积
  20. 生产者-消费者中的缓冲区:BlockingQueue接口

热门文章

  1. 递归三:变态蛙跳台阶
  2. php实现 明明的随机数
  3. 【线性表4】线性表的链式实现:静态表
  4. SEO配置信息操作文档
  5. 上海天氣情況及空氣質量指數
  6. zabbix安装报错
  7. 百度富文本编辑器UEditor安装配置全过程
  8. 大神打造生态链,从F2全网通开始
  9. contrastive loss function (papers)
  10. matlab gui 鼠标选择矩形区域 返回鼠标坐标点