V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
miniyao
V2EX  ›  MySQL

MySQL5.5 导出的 *.sql 文件,直接导入 MySQL5.7 或 MySQL8.0 有兼容性的问题吗?

  •  
  •   miniyao · 2018-06-09 21:34:13 +08:00 · 14002 次点击
    这是一个创建于 2363 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有一个老的数据库是 MySQL5.5,准备版本升级的时候连数据库一起升级到最新的 MySQL (如果 MySQL8.0 兼容性没问题,就不考虑 MySQL5.7 了),不清楚 5.5 版本导出的 *.sql 文件,导入到 MySQL8.0,大家有遇到过兼容性的坑吗?
    23 条回复    2019-11-04 18:23:08 +08:00
    goodryb
        1
    goodryb  
       2018-06-09 21:45:58 +08:00
    所以最好办法难道不是你先创建一个 MySQL8,用 5.5 的备份导入测试一次?
    miniyao
        2
    miniyao  
    OP
       2018-06-09 21:55:16 +08:00
    @goodryb 本地测试看起来没有问题,毕竟版本跨度比较大了,意外的坑难免
    caola
        3
    caola  
       2018-06-09 21:55:30 +08:00
    标准的 sql 语句,能有什么兼容问题?
    除非你使用的是新版本已废弃的功能
    miniyao
        4
    miniyao  
    OP
       2018-06-09 22:05:19 +08:00
    @caola 就是一个普通的 CMS 内容数据库,导出的一个备份 *.sql 文件,没有用什么稀奇古怪的功能
    lzhnull
        5
    lzhnull  
       2018-06-10 00:07:24 +08:00 via Android
    注意为空的字段
    ETiV
        6
    ETiV  
       2018-06-10 02:59:43 +08:00 via iPhone
    要出问题也多半是表结构定义的 sql

    可以先不要数据,只导出 5.5 的 create table,导进新版本看一下
    Mac
        7
    Mac  
       2018-06-10 04:38:17 +08:00 via Android
    SQL 导入导出没遇到什么麻烦,创建用户遇到了,8.0 默认密码加密方式和 5 的不一样,所以很多第三方管理软件不支持新版本,需要自己在设置文件里改加密方式。话说 heidisql 这个版本帝突然停更了。
    shiji
        8
    shiji  
       2018-06-10 06:26:43 +08:00
    我最常见到的问题是 0000-00-00 00:00:00 这种日期导致的错误。但这个可以修改配置忽略
    GTim
        9
    GTim  
       2018-06-10 06:45:12 +08:00   ❤️ 1
    还有一种方法,先搭建一个主从同步的
    jjianwen68
        10
    jjianwen68  
       2018-06-10 08:25:54 +08:00 via Android
    8.0mysqldump 之前版本的数据库默认会有问题,8.0 的改变有点大啊
    abusizhishen
        11
    abusizhishen  
       2018-06-10 08:26:46 +08:00 via Android
    最好用 MySQL 官方工具 MySQL workbench 导入导出
    20has
        12
    20has  
       2018-06-10 10:41:53 +08:00 via Android
    @GTim 主从好像只是从库版本高于主库就行了吧,好思路!
    不过没实践过,不知道大伙怎么看😊
    20has
        13
    20has  
       2018-06-10 10:43:17 +08:00 via Android
    @abusizhishen 最好的导入导出应该还是服务器开 screen 和命令行吧(ノ_ _)ノ
    doubleflower
        14
    doubleflower  
       2018-06-10 10:59:45 +08:00
    这么多年我还碰到过导入不兼容过
    这个应该设计上是考虑兼容的否则让人还怎么升版本
    miniyao
        15
    miniyao  
    OP
       2018-06-10 11:38:07 +08:00
    @Mac 我也遇到这个问题了,开始安装的时候提示了用户加密的方式不同,选了推荐的强加密,然后就会出现和老版本不兼容的情况。
    pathbox
        16
    pathbox  
       2018-06-10 11:57:21 +08:00 via iPhone
    做好备份和回滚
    CFO
        17
    CFO  
       2018-06-10 12:02:41 +08:00 via Android
    5.7 到 5.5 的遇到过问题 反过来没遇到过
    GTim
        18
    GTim  
       2018-06-10 12:12:32 +08:00
    看了楼上的讨论,我觉得主从同步是目前比较靠谱的方式,甚至可以在同一台机器上安装两个版本,不同的端口号,如果同步完成且没有出错,直接改端口启动
    wvc
        19
    wvc  
       2018-06-10 15:19:50 +08:00
    我升级到 8.0 之后使用最新版的 phpmyadmin 进行操作,全都提示语法错误,根本没法用……
    f2f2f
        20
    f2f2f  
       2018-06-10 15:57:27 +08:00
    生产环境不建议 8.0 啊,先 5.7 比较稳
    stabc
        21
    stabc  
       2018-06-10 15:58:07 +08:00
    低出高入基本都没问题。
    zcxj138
        22
    zcxj138  
       2018-06-11 09:03:04 +08:00
    低版本导高版本应该没啥问题吧。不过 5->8 跨度比较大,不排除 sql 语言重构。
    jeeyong
        23
    jeeyong  
       2019-11-04 18:23:08 +08:00
    存在 GTID 不能写的问题.
    要么 dump 导出的时候.直接关掉 GTID
    要么导入的时候 在目标数据库上 reset master; 一下.
    但是存在依旧不能导入的问题...具体原因不明.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1212 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:15 · PVG 02:15 · LAX 10:15 · JFK 13:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.