记 一次mysql 数据迁移

一.数据备份

  进入 mysql 执行文件目录(根据实际进行切换)

    cd /usr/local/mysql/bin/

  1.仅备份结构

    1)指定数据表备份表结构

      mysqldump  -u    root  -p    -d    {数据库名称}  {表名称1}  {表名称2}  >  dump.sql          

    2)备份所有数据表的表结构

      mysqldump   -u   root   -p   -d    {数据库名称}   >    dump.sql

    3)备份多个数据库的的表结构

      mysqldump   -u    root   -p   -d    --databases   {数据库名称1}  {数据库名称2}   >   dump.sql

    4)备份所有数据库的表结构

      mysqldump   -u    root   -p   -d     --all-databases   >    dump.sql

  2.同时备份表结构和数据

    将上面的命令    -d 参数去掉即可

  3.仅备份数据

    1)方法一,进入 mysql  客户端(mysql -u root -p),使用 select  sql语句

      select     [列名],[列名2](或者直接*)    from   {表名称} [where 语句]      into   outfile    {"目标文件名称,字符串"}     [options]

      参数   options   可选, 默认输出到  mysql  保存数据表文件的目录

    2)方法二,使用  mysqldump  命令

二.数据还原

  1.还原结构/结构与数据同时还原(注意,原有数据表的表结构及数据会被覆盖清空)

    登录 mysql 客户端(mysql -u root -p),直接执行指令:

       source {备份文件的路径}

扫描二维码关注公众号,回复: 8480589 查看本文章

  2.插入仅备份了数据的备份文件(注意:备份数据中是否和现有数据表中的数据冲突,如 id 等)

    登录 mysql 客户端(mysql -u root -p):

      load  data  [local]  in file  {备份文件路径]  into  table  {数据表名称}   [options]

      参数 local: 如果使用本地备份文件

      参数 options: 可选

注意:

  1.在进行备份操作时,遇到了如下异常

    MySQL server is running with the --secure-file-priv option so it cannot execute this statement

    原始是MySQL限制了导入与导出的目录权限,只能在规定的目录下才能操作,使用sql语句  "  show variables like '%secure%';  "  查看  secure-file-priv 当前值。

    解决办法:

      在 配置文件的 [mysqld] 下,加入如下配置项:

        secure-file-priv  =  ""

      重启数据库,然后就可以在任何目录下操作了,或者指定目录

  2.由于本人配置的原因,进入 mysql 客户端时,需要进入 mysql 执行文件目录下,再执行指令,才能正常进入客户端

猜你喜欢

转载自www.cnblogs.com/lowmanisbusy/p/12175435.html