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)
可能是权限问题,也可能是没有这个用户,添加用户即可
浙公网安备 33010602011771号