java远程备份mysql数据库关键问题(限windows环境,亲测解决)

其它环境同理也可解决。

条件:为了使用mysql命令,本机要安装mysql ,我本机安装的是mysql 5.5。

错误1:使用命令 mysqldump -h192.168.1.50 -u root -p123 bdas >D:/test.sql 报错

mysqldump: Got error: 1449: The user specified as a definer ('root'@'%') does no
t exist when using LOCK TABLES

解决方法:登录远程主机mysql 的root用户 赋所有权: grant all privileges on *.* to root@"%" identified by ".";

错误2:

使用命令     mysqldump -h192.168.1.50 -u root -p123 bdas >D:/test.sql   报错
ERROR 1045 (28000): Access denied for user 'root'@'hehg-PC' (using password: YES)

解决方法:
以下皆为命令行,若未配置环境变量则命令在bin目录(cd C:Program FilesMySQLMySQL Server 5.5in)下使用。
1:在远程主机上停止mysql服务:net stop mysql;
2:在mysql根目录下有一个my.ini文件,打开找到标签[mysqld],在其下面添加skip-grant-tables,保存退出;
3:远程主机启动mysql服务:net start mysql;

在本机使用上述命令即可备份远程mysql数据库在本机指定目录。

接着将这些命令做成*.bat格式,用Java调用runtime执行bat命令(思路)。

这些做了下面还要做Java控制还原数据库

原文地址:https://www.cnblogs.com/hhg-2015/p/6520018.html