日常需要使用到mysql数据库的迁移,但是当有视图,函数,存储过程的时候经常遇到dump的脚本重新导入后会报错,需要手工调整,下面总结了一些经验,尽量减少报错的可能性

步骤

  • 先备份表结构和创建数据库

    1
    
      mysqldump -h <host>  -P <port> -u <user> -p -B --no-data  --column-statistics=0  <db_name> > table.sql
    
  • 备份存储过程和函数

    1
    
      mysqldump -h <host>  -P <port> -u <user> -p  -t -d -R --column-statistics=0   <db_name> > view.sql
    
  • 备份数据

    1
    
      mysqldump --no-create-info -h <host>  -P <port> -u <user> -p  --column-statistics=0   <db_name> > data.sql
    
  • 导入表结构

    1
    
      mysql -h<host> -P<port> -u<user> -p -f  < table.sql
    
  • 导入存储过程和函数

    1
    
      mysql -h<host> -P<port> -u<user> -p <db_name>  < view.sql
    
  • 核对表数量,存储过程数量,函数数量是否和源库一致,如果一致再执行相关导入

  • 导入数据

    1
    
      mysql -h<host> -P<port> -u<user> -p -f <db_name>  < data.sql