公司搭建了2台服务器, 准备把原先的服务器撤下来, 需要把原服务器上的数据库迁移到新的服务器上,但是现在的服务器数据库还是5.1版本的(买的别人的服务器,他们装好的mysql),但是旧服务器的数据库版本是5.5 的,从5.5把数据迁移至5.1,总是会遇到不兼容的问题
为什么会使用utf8mb4,因为utf8mb4才是真正的utf8编码
“utf8”只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节。
MySQL 一直没有修复这个 bug,他们在 2010 年发布了一个叫作“utf8mb4”的字符集,绕过了这个问题。
当然,他们并没有对新的字符集广而告之(可能是因为这个 bug 让他们觉得很尴尬),以致于现在网络上仍然在建议开发者使用“utf8”,但这些建议都是错误的。
简单概括如下:
MySQL 的“utf8mb4”是真正的“UTF-8”。
MySQL 的“utf8”是一种“专属的编码”,它能够编码的 Unicode 字符并不多。
数据迁移方式1:
使用navicat ,数据库上右击,转储sql文件,选择数据和结构
等他运行成功, 会保存为一个.sql文件
然后在新的数据库连接上新建连接,右击运行sql文件
如果日志为successfully,那么没问题,正常
方式2:
目标服务器上新建一个跟之前数据库名一样的数据库,选择工具,数据传输
等他正常结束
方式3:
点击备份,新建备份,提取sql,然后到目标数据库运行sql文件即可
以上方式正常情况都是没问题的,亲自试过~
但是5.1不支持utf8mb4格式,使用navicat导入数据的时候怎么都导不进去,一个一个改吧,其实navicat可以批量修改替换Ctrl+F,点击替换,全部替换,OK
设计表,sql预览,另存为,然后复制,在新数据库中新建查询,把语句复制过去,改一下,运行,即可
这样就把utf8mb4换成utf8了,现在把数据库结构复制了过来,下一步选择数据同步,把数据同步到当前库中
在数据库连接上,选择工具,数据同步
点击开始就可以了
这样数据库就迁移成功了