时间:2021-07-01 10:21:17 帮助过:34人阅读
在进行数据备份、恢复时,碰到的问题罗列如下:
问题一:1.数据迁移异常,ubuntu下迁移完数据目录,数据库不能启动
数据库默认使用mysql用户来启动数据库,请检查新迁移的数据目录,mysql对其是否具有读写权限。如果没有,请授予其读写权限。如果是在ubuntu环境中使用apt-get命令安装的数据库,修要修改/etc/apparmor.d/usr.sbin.mysqld的内容,添加新增目录的相关信息。
问题二:2.flush log引发备份为空的问题
表现:使用mysqldump -uxxx -pxxxx --flush-logs --master-data=2 --hex-blob -R -f --all-databases 2>>$tmpfile时发现$tmpfile里面的内容是空的。
解决方法:是mysql版本问题,该版本存在此bug,mysql5.5.28已修复此bug。
问题三:3.mysqldump报error1449
使用mysqldump导出数据库的时候出现这个错误: mysqldump: Got error: 1449: The user specified as a definer ('jing'@'%') does not exist when using LOCK TABLES.
解决方法:数据库创建时使用的是脚本创建,里面对某些对象的定义,使用了definer。但数据库中是并不存在这个用户的,解决方法是,修改这些个对象的definer对象。
问题四:4.数据时,函数不能导入,数据导入后,执行计划不能定时执行
函数不能成功导入时,如果可以,关闭二进制日志,再导入函数。如二进制日志要求打开,设置:
log_bin_trust_function_creators=on;
数据导入后,保证执行计划定时执行,请设置:
event_scheduler=on
问题五:5.数据恢复时,报1114错误 the table is full
该表使用的是memory存储引擎,如果批量导入会因为数据库内存临时表设置过小而报错。增大内存临时表大小
set global max_heap_table_size=167772160;
set global tmp_table_size=167772160;