
“没有数据就没有一切,数据库备份是一种防范灾难于未然的强力手段。”,尽管采取了一些管理措施来保证数据库的安全,但是不确定的意外情况总是有可能造成数据的损失。保证数据安全最重要的一个措施是确保对数据进行定期备份。如果数据库中的数据丢失或者出现错误,可以使用备份的数据进行恢复,这样就尽可能地降低了意外原因导致的损失。MySQL提供了多种方法对数据进行备份和恢复,例如: MySQL自带的备份语句、第三方备份工具或者图形化管理工具等。本文列举MySQL数据库备份和恢复常见错误及解决方案。
01
错误14-1 导出失败
【问题描述】
在使用SELECT INTO OUTFILE语句导出“tb_class”数据表时,如图14.39所示命令提示符报错“ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement”。

■ 图14.39 导出失败错误图
【解决方案】
目标目录不符合secure_file_priv 参数,需要设置该参数。在MySQL中使用MySQL命令“SHOW VARIABLES LIKE '%secure_file_priv%';”查询可存储目录。查询效果如图14. 40所示。

■ 图14.40 查询结果
在“Value”中可见存储的位置应为“C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\”目录下。所以有两个修改方式:
方式一:将目标目录改为“C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\tb_class.txt”。
方式二:在配置文件my.ini修改“secure_file_priv”参数的值。
在“C:\ProgramData\MySQL\MySQL Server 8.0”目录下使用文本查看器打开my.ini配置文件搜索查找到如图14.41 所示“secure_file_priv”参数。

■ 图14.41 secure_file_priv参数
将“secure_file_priv”后的参数修改为空字符串“''”,效果如图14.42所示。

■ 图14.42 修改后效果
再次在MySQL中使用MySQL命令“SHOW VARIABLES LIKE '%secure_file_priv%';”查询可存储目录会发现目录为空,此时可以导出至任意位置,效果如图14.43所示。

■ 图14.43重新查询结果
02
错误14-2 删除表格失败
【问题描述】
在执行删除表格数据操作时,如图14.44所示命令提示符报错“ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`db_study`.`tb_student`, CONSTRAINT `fk_class_id1` FOREIGN KEY (`class_id`) REFERENCES `tb_class` (`class_id`) ON DELETE RESTRICT ON UPDATE RESTRICT)”。

■ 图14.44删除表格失败错误图
【解决方案】
由于数据表结构严谨,表与表之间有着各种约束所以导致删除失败。在MySQL中执行“SET FOREIGN_KEY_CHECKS=0;”语句,使数据库忽略外键约束,然后再执行删除语句“DELETE FROM tb_class;”,如图14.45 所示则表示操作成功。

■ 图14.45删除成功
操作成功后,为保证数据库严谨性,需要使用MySQL命令“SET FOREIGN_KEY_CHECKS=1;”如图14.46所示将约束再次打开。

■ 图14.46打开约束
03
错误14-3 迁移失败情况一
【问题描述】
在进行MySQL数据库迁移时,如图14.47所示命令提示符报错“ERROR 1046 (3D000) at line 22: No database selected”。

■ 图14.47迁移失败错误图
【解决方案】
指令中没有输入接收数据库数据的目标数据库,需要在后面加上指定的目标数据库。
04
错误14-4 迁移失败情况二
【问题描述】
在进行MySQL数据库迁移时,如图14.48所示命令提示符报错“ERROR 1142 (42000) at line 22: DROP command denied to user 'Test'@'DESKTOP-2QVR6V8' for table 'tb_class'”。

■ 图14.48迁移失败错误图
【解决方案】
因为MySQL数据库迁移数据原理是先删除后插入,在这个过程中接收方如果没有对传输发方进行操作授权的话就无法进行,授权操作请参考“第13章 数据库的安全性”。
05
错误14-5 迁移失败情况三
【问题描述】
在进行MySQL数据库迁移时,如图14.49所示命令提示符报错“mysqldump: Got error: 1045: Access denied for user 'root'@'DESKTOP-2QVR6V8' (using password: YES) when trying to connect”。

■ 图14.49迁移失败
【解决方案】
系统提示访问被拒绝,原因是主机访问没有权限,查看MySQL数据库中的mysql数据库,查询user数据表如图14.50所示,Host和User字段可以发现,root用户的Host主机名是localhost。

■ 图14.50 查询user数据表
所以在传输过程中输入IP地址会报错,可以将迁移指令中的Host改为与mysql数据库中的user数据表对应的Host参数“localhost”。也可以将root用户对应的Host参数修改为通配符“%”,通配任意N个字符。在MySQL中输入SQL语句“ UPDATE user SET Host='localhost' WHERE User='root';”并使用SQL语句“FLUSH PRIVILEGES;”刷新权限后再次查询,如图14.51所示操作成功。

■ 图14.51 执行迁移操作成功
再次尝试MySQL数据库迁移即可完成。
匿名
2025-10-22
盖楼盖楼!
匿名
2025-08-11
沙发沙发
匿名
2025-08-10
https://at.oiik.cn/bing.html
匿名
2025-02-21
实用,我在开发https://minmail.app/时候使用到了
王飞翔
2024-12-30
亲爱的朋友:您好!中国疫情持续蔓延,很多人症状非常严重持久不愈,医院人满为患,各年龄段随地倒猝死的现象暴增,多省感染手足口、甲流、乙流、支原体、合胞及腺病毒的儿童不断攀升,目前各种天灾人祸,天气异象频发。古今中外的很多预言都说了这几年人类有大灾难,如刘伯温在预言中说 “贫者一万留一千,富者一万留二三”,“贫富若不回心转,看看死期到眼前”, 预言中也告诉世人如何逃离劫难的方法,真心希望您能躲过末劫中的劫难,有个美好的未来,请您务必打开下方网址认真了解,内有躲避瘟疫保平安的方法。网址1:https://github.com/1992513/www/blob/master/README.md?abhgc#1 网址2:bitly.net/55bbbb 网址3:https://d3ankibxiji86m.cloudfront.net/30gj 如打不开请多换几个浏览器试
匿名
2024-12-12
Backdata 搜索引擎网址提交入口:https://backdata.net/submit-site.html