mysqldbcopy - 错误1045:用户'root'@'localhost'拒绝访问(使用密码:NO)

时间:2013-07-26 19:15:55

标签: mysql bash mysql-workbench mysql-python

我正在使用mysql workbench,它在linux下有mysqldbcopy命令。当我尝试使用它时,我必须提供一个连接字符串(参见示例here)。

我的密码包含&符号(&),因此我调用mysqldbcopy如下(对于字符转义建议)

mysqldbcopy \
    --source "root:&1qqq34rtyy@localhost:3310:/var/run/mysqld/mysqld.sock" \
    --destination "root:&1qqq34rtyy@localhost:3310:/var/run/mysqld/mysqld.sock" \
    old:new

但我收到以下错误,通过谷歌搜索,我发现这意味着我没有提供正确的密码(如果我错了,请纠正我)

# Source on localhost: ... ERROR: Cannot connect to the Source server.
Error 1045: Access denied for user 'root'@'localhost' (using password: NO)
请问有人可以解释问题出在哪里?

是的,我确信密码是正确的,已经从.my.cnf复制了,我可以在mysql命令下使用

2 个答案:

答案 0 :(得分:2)

mysqldbcopy

--source=root':&1qqq34rtyy'@localhost:3310:/var/run/mysqld/mysqld.sock  
--destination=root':&1qqq34rtyy'@localhost:3310:/var/run/mysqld/mysqld.sock 
 old:new  --force

我也面临同样的问题,

上述语法顺利执行,没有任何错误。 如果目标数据库名称已存在,则使用--force&需要强制覆盖

答案 1 :(得分:1)

通过查看您提供的链接,我可以得出结论 -

您正在使用 -

mysqldbcopy \
    --source "root:&1qqq34rtyy@localhost:3310:/var/run/mysqld/mysqld.sock" \
    --destination "root:&1qqq34rtyy@localhost:3310:/var/run/mysqld/mysqld.sock" \
    old:new

但链接显示,

mysqldbcopy \   
    --source=root:pass@localhost:3310:/test123/mysql.sock \ 
    --destination=root:pass@localhost:3310:/test123/mysql.sock \   
   util_test:util_test_copy

结论,

  1. --source--destination之后,您提供的链接中的示例包含' ='

  2. 如果双引号没有帮助,请尝试使用单引号。

  3. 验证端口3310是否正确。默认我猜你安装时是3306.你能确认吗?