mysql数据迁移

2019-11-30  本文已影响0人  纳米君

一.借助Navicat工具

  1. 导出
    双击打开数据库,右键 -- 转储SQL文件,根据实际需求选择“结构和数据” or “仅结构”,选择保存路径即可。
  2. 导入
    右键数据库连接名 -- 新建数据库 -- 右键数据名 -- 运行SQL文件 -- 选择SQL文件路径即可。

导入可能出现的错误提示:1153 - Got a packet bigger than 'max_allowed_packet' bytes
解决方法:

临时修改:set global max_allowed_packet=524288000; (512M,如果还报错,值再设大,需登录MySQL执行)
永久修改:修改my.cnf(Windows下my.ini),需要重启MySQL。在[MySQLd]部分设置:max_allowed_packet=256M。可通过命令show VARIABLES like '%max_allowed_packet%’查看是否修改成功。

二.命令行方式

  1. 导出数据和表结构
    mysqldump -u用户名 -p 数据库名 > 数据库名.sql,比如:mysqldump -uroot -p dbname > dbname.sql

  2. 只导出表结构,使用-d
    mysqldump -uroot -p -d dbname > dbname.sql

  3. 导入数据库
    mysql -uroot -p dbname < dbname.sql

  4. 导出所有数据库
    mysqldump -uroot -p --all-databases > all.sql

  5. 导入所有数据库
    mysql -uroot -p < all.sql

错误提示:-bash: mysqldump: command not found
解决方法:由于linux系统默认会查找/usr/bin下的命令,所以需要映射一个链接到/usr/bin目录下。ln -s /home/mysql/bin/mysqldump /usr/bin

三.拷贝文件

  1. 在MySQL的安装目录找到data文件夹,比如:/home/mysql/data/
  2. 将数据库对应的文件夹(数据库和文件夹同名)拷贝到另一个MySQL的data目录下。比如:下图中的 datacenter 库。

注意:可能没有data目录,可通过cat /etc/my.cnf查看datadir路径。比如:datadir=/var/lib/mysql。mysql就是data目录。

image.png
  1. 如果没有生效,重启MySQL:service mysqld restart
上一篇下一篇

猜你喜欢

热点阅读