Mysql 数据库备份和还原

1、单表,多表备份还原

mysqldump -u username -p dbname table1 table2 ...-> BackupName.sql

2、备份单个数据库

mysqldump -u root -p bpms_4s_xkqx > d:\chenjiang.sql

3、备份多个数据 :加上了--databases选项,然后后面跟多个数据库

mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql

4、备份全部数据库

mysqldump -u username -p -all-databases > BackupName.sql

5、还原表sql都是一样的

 mysql -u username -p dbname < BackupName.sql -- default-character-set=utf8 (添加编码,不然可能报错)

6、复制data目录

这种方式对InnoDB存储引擎的表,需要进行处理(1)、保证两个数据库的版本号相同;

                                                                           (2)、找到此目录后,将待恢复数据库文件夹,ibdata1,my.ini文件拷贝到新的mysql对应目录下,并在my.ini任意位置添加iinnodb_file_per_table=6。(ibdata1,my.ini请备份),此时正常启动mysql,待恢复数据库可以访问。导出sql,恢复ibdata1,my.ini文件。

参考原文:http://blog.maptoface.com/post/18
————————————————

 

问题:(1)、root 通过命令备份所有数据库时可能报错

mysqldump: Got error: 1449: The user specified as a definer ('admin'@'%') does n
ot exist when using LOCK TABLES

检查两个问题:授权,可能表在使用状态,导出数据时报错,添加-x 命令

D:\Program Files\mysql-5.7.14-winx64\bin>mysqldump -u root -p -x --all-databases
> D:\back_20200122.sql

   (2)、

mysqldump: Couldn't execute 'SHOW FIELDS FROM `v_bpms_parts_allot_show`': SELECT
command denied to user ''@'%' for column 'F_S_PARTS_ALLOT_ID' in table 'bpms_pa
rts_allot_list' (1143)

    可能是权限问题,也可能是没有这个用户,添加用户即可

posted @ 2020-03-19 10:42  禾勿人水  阅读(123)  评论(0)    收藏  举报