java定时任务备份mysql数据库,使用mysqldump

2024-04-11  本文已影响0人  zhihaoZzz

直接执行此命令,可以备份,但是java在定时任务中执行时,报错

mysqldump -uroot -p'root'  dataName > /usr/local/data_back/dataName_2024-04-12_10-26-00.sql

使用查找出命令所在地址

whereis mysqldump 
image.png

将命令修改为:

/usr/bin/mysqldump -uroot -p'root'  dataName > /usr/local/data_back/dataName_2024-04-12_10-26-00.sql

Runtime.getRuntime().exec()执行还不行,尝试使用 ProcessBuilder 执行:

  //   /bin/bash指定shell linux环境    -c 指定后边为“命令”
  ProcessBuilder builder = new ProcessBuilder("/bin/bash", "-c", dumpCommand);
  Process process = builder.start();

mysql5.7以后出现警告:

Using a password on the command line interface can be insecure.

解决办法:

在/ete/my.cnf 中添加

[mysqldump]
user=root
password=你的密码

重启服务,修改mysqldump语句,去掉-uroot -p参数

/usr/bin/mysqldump dataName > /usr/local/data_back/dataName_2024-04-12_10-26-00.sql
上一篇下一篇

猜你喜欢

热点阅读