5

我正在尝试使用该mysqldbcompare工具,但出现连接错误:

$ mysqldbcompare --server1=client --skip-data-check db1:db2
# server1 on <ip>: ...
ERROR: Access denied for user 'root'@'<ip>' (using password: YES)

不过,我可以mysql很好地使用和连接。我使用和不通过所有参数()的命令设置我的信用mysql_config_editor --host=<ip> --user=root --port=3306 --password并使用该命令进行测试。mysqlmysql -u root -p -h <ip> -P 3306

我检查了服务器的绑定地址并查看了服务器错误日志,但它只是重申了连接被拒绝的消息。我已经在网上(和 SO)搜索过,但找不到任何东西。

任何帮助表示赞赏。

4

2 回答 2

0

我认为 mysql compare 的这个命令不要使用默认配置,尝试强制用户和密码进入命令行。

于 2018-01-22T17:10:45.693 回答
0

当您遇到拒绝访问错误时,表示TCP 连接已建立,但您提供的密码错误'User'@'Host'(用户主机对是 MySQL 身份验证的真实帐户,而不是单个用户名)。

假设 MySQL 服务器在运行172.0.0.8并且您的本地地址是172.0.0.5.

  1. 看看mysql.user通过:SELECT * FROM mysql.user\G;。如果您找不到这两个 User-Host 对中的任何一个:'root'@'172.0.0.5''root'@'%',则表示没有这样的帐户。所以你失败了。
  2. 还要从上面的输出中检查现有用户-主机对的密码。
  3. 现在,连接正常,帐户存在,密码正确,出现此类错误的唯一机会是:mysqldbcompare 没有使用您提供的参数!
  4. 尝试其他解决方法,例如:mysqldbcompare --server1=root:password@172.0.0.8:3306 --skip-data-check db1:db2

一步一步检查所有这些东西,你会弄明白的。

于 2018-01-25T05:24:55.693 回答