欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mysql备份问题_MySQL

程序员文章站 2022-04-26 10:17:07
...
bitsCN.com

在进行数据备份、恢复时,碰到的问题罗列如下:

问题一: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;

bitsCN.com