为了提高mysql主从复制的效率,将mysql 从5.1.63升级到5.6.20,升级过程非常顺利,但是在数据的迁移过程中出现了问题,

第一次数据迁移直接使用的是数据文件迁移的方法:停掉原5.1.63的数据库服务,将数据库的物理文件直接拷贝到5.6.20的数据库的data目录下,启动5.6.20的数据库服务,启动非常正常,但在打开前端应用时,好多数据都不能正常呈现,进入数据库查看有不少数据缺失,应该是高版本中对低版本的数据文件的识别存在问题,所以从低版本向高版本进行数据迁移不能使用直接拷贝数据文件的方法。直接拷贝文件时候同一个大版本的情况下。

第二次迁移,由于第一次迁移失败,所以第二次只好直接把数据DUMP出来,使用工具mysqldump -uroot -proot database >./data.isql 将整个要迁移的库的数据备份出来,生成data.isql,这个过程要看数据库的大小,时间不一,等数据DUMP出来之后,使用命令mysql -uroot -proot  database < ./data.isql,将备份文件导入到5.6.20数据库中。一切正常,大家前端应用,数据显示也非常正常,就在准备收工的时候,问题出现,在前端应用中不能添加数据,提示添加失败。

将前端应用中添加数据过程中的DEBUG信息打印出来,发现是由于某个列的值(查看该字段的属性是允许null空值存在)没有给导致出错,为啥之前在5.1.63中没有这个问题,查看5.6.20数据库的配置文件发现了问题,该版本数据库的配置文件默认加了 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES  这个配置,其中参数STRICT_TRANS_TABLE,表示是要对SQL的语句进行严格校验,是不允许有空值存在,必须要给字段赋值,而低版本的5.1.63数据库中默认是没有参数,也就是不严格校验你的SQL语法。

解决问题的方法很简单,就是将STRICT_TRANS_TABLES 这个参数去掉,或者将这个sql_mode整个参数的赋值注释掉,重启数据库就可以。

本次数据库的版本升级和数据迁移也是一波三折,好歹算迁移成功。

转载于:https://blog.51cto.com/renwd/1552485

mysql从5.1.63升级到5.6.20出现的问题相关推荐

  1. Centos MySQL 5.7安装、升级教程

    MySQL 5.7安装.升级笔记分享: 卸载当前的 MySQL 查看当前 MySQL 版本: ? 1 2 [root@coderknock ~]# mysql -V mysql Ver 14.14 D ...

  2. suse mysql 5.5_suse 11 mysql 如何从5.1升级到5.5

    MySQL-server-5.0.67-1.sles11 libqt4-sql-mysql-4.6.2-1.6.11 libmysqlclient15-5.0.67-13.20.1 php5-mysq ...

  3. centos mysql 5.5.57_Centos MySQL 5.7安装、升级教程

    MySQL 5.7安装.升级笔记分享: 卸载当前的 MySQL 查看当前 MySQL 版本: 停止 MySQL 服务 备份数据[数据不重要可以忽略] 备份数据库,升级MySQL通常不会丢失数据,但保险 ...

  4. xtrabackup 升级 mysql_使用percona-xtrabackup-2.0.8将MySQL从5.1.73升级到5.6.36

    使用percona-xtrabackup-2.0.8将MySQL从5.1.73升级到5.6.36 1.安装xtrabackup cd /usr/local/ tar xvf percona-xtrab ...

  5. mysql从5.7平滑升级到8.0.27

    mysql升级过程 官网下载最新的mysql安装包 上传到服务器的/opt/mysql目录下解压: # 文件上传位置在/opt/mysql/下面 cd /opt/mysql/# 解压安装包 [root ...

  6. mambo_4.5.3的mysql数据库由4.0升级4.1操作过程

    在mambo里使用mysql4.1目前好像一直是一个禁区,迫于主页空间的限制, 我历经一天一夜的探索,完成了数据库升级,现将操作过程写下来,供朋友们参考. mambo_4.5.3的mysql数据库由4 ...

  7. Red Ha9内核从2.4.20升级到2.6.20

    转载声明:部分内容为网上转载,http://apps.hi.baidu.com/share/detail/46834373 升级Red Hat Linux 9.0的内核,从2.4.20-8升级到2.6 ...

  8. mysql 5.6 uf8mb4_MySQL5.7升级到8.0过程详解

    前言: 不知不觉,MySQL8.0已经发布好多个GA小版本了.目前互联网上也有很多关于MySQL8.0的内容了,MySQL8.0版本基本已到稳定期,相信很多小伙伴已经在接触8.0了.本篇文章主要介绍从 ...

  9. MySQL从5.7.32升级到8.0.22

    目录 一.备份与导出数据 二.升级到MySQL-8.0.22同时解决字符集问题 2.1.卸载MySQL-5.7.32 2.2.安装MySQL-8.0.22 2.3.修改配置文件 my.cnf 三.导入 ...

最新文章

  1. python采集修改原创_python应用系列教程——python中ftp操作:连接、登录、获取目录,重定向、上传下载,删除更改...
  2. 7 centos 修改磁盘uuid_Centos7修改分区空间
  3. nginx php访问日志配置,nginx php-fpm 输出php错误日志的配置方法
  4. 重启模块与及关开邮件存储设置功能页面-PHP-shell-py
  5. redis中各种数据类型对应的jedis操作命令
  6. 诺基亚java软件下载_诺基亚手机安装JAVA软件程序
  7. Python——输入若干行,每行若干行整数,求所有整数的最大值
  8. 绕过“请在微信客户端打开链接”如微师下载视频等。
  9. 黑客+马拉松=? 黑客马拉松?
  10. HttpClient超时时间 timeout
  11. 存储器基本概念及分类介绍
  12. 【RT-Thread 开源作品秀】时光空间立方
  13. [我也GitHub]我很焦虑, 我很暴躁!
  14. 微信小程序开发工具取消用户授权
  15. surfaceView全屏和退出全屏
  16. 帧定格(用于定格画面添加字幕或者图片)
  17. 接口自动化参数化(一)
  18. iOS内购(IAP,In App Purchases-在APP内部支付),设置及使用
  19. solr mysql增量导入_10.Solr4.10.3数据导入(DIH全量增量同步Mysql数据)
  20. 什么是华为云服务器?它有什么优点?

热门文章

  1. 8备份sqlserver_关于SQL server 巡检的要点你都知道吗?
  2. abb机器人searchl报错_西门子PLC1200与ABB机器人通信
  3. matplotlibpycharm
  4. 从Scala2.13.0开始废弃了一些方法
  5. 大数据学习笔记43:Hive - JDBC编程
  6. Specificity考量
  7. 国际码可以直接应用于计算机,2012年自考计算机应用基础试题及答案
  8. 【英语学习】【Level 07】U05 Best Destination L5 Top choice
  9. python初学小游戏_python学习(小游戏)
  10. vue 如何处理两个组件异步问题_Vue异步组件使用详解