解决无法mysqldump,提示索引用户为免密登录的报错

当尝试使用mysqldump备份时遇到错误,提示与免密登录用户有关。通过检查数据库视图的DEFINER属性,发现报错原因。解决方案包括在配置文件中切换到免密身份或直接删除问题视图,或者修改视图的所有者。参考链接提供了详细步骤。
摘要由CSDN通过智能技术生成
  • 报错如下:
    mysqldump: Got error: 1449: The user specified as a definer ('skip-grants user'@'skip-grants host') does not exist when using LOCK TABLES

image.png

  • 首先查看库中存在哪些视图:
    show table status where comment='view';
    image.png
    image.png
  • 查看视图的属主(其中有个字段为DEFINER)
    show create view server;
    image.png
    可以发现该视图的属主为skip-grants user@skip-grants host证实了报错原因
  • 找到报错原因后可使用两种方
mysqldump可以通过设置环境变量或使用mysql_config_editor来实现免密登录。对于设置环境变量的方法,可以使用以下命令:\[1\] export MYSQL_PWD=123456 这样,在执行mysqldump命令时就可以直接登录,而无需输入密码。 另一种方法是使用mysql_config_editor创建登录文件。创建完登录文件后,可以通过指定登录文件的路径来执行mysqldump命令,例如:\[2\] docker exec -it mysql mysqldump --login-path=root_login blog_db > /data/backup/blog_db_$(date +%Y%m%d).sql 此外,还可以通过定时执行来实现自动备份。可以将mysqldump命令写入/etc/crontab文件,设置每天凌晨3点执行,例如:\[3\] echo '00 03 * * * root /usr/bin/docker exec mysql mysqldump --login-path=root_login blog_db > /data/backup/blog_db_$(date +\%Y\%m\%d).sql' >> /etc/crontab 这样,每天凌晨3点,mysqldump命令就会自动执行,并将备份文件保存在指定目录中。 #### 引用[.reference_title] - *1* [mysql 免密登录/免密备份](https://blog.csdn.net/w1054230914/article/details/116749730)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [docker版mysql:5.7.34 免密码使用mysqldump备份](https://blog.csdn.net/zyy247796143/article/details/124355917)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值