2

我正在使用具有mysqldbcopylinux 下命令的 mysql 工作台。当我尝试使用它时,我必须提供一个连接字符串(请参阅此处的示例)。

我的密码包含&符号(&),因此我调用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命令下使用它

4

2 回答 2

4

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如果目标数据库名称已经存在并且需要强制覆盖,请使用。

于 2014-03-08T10:11:04.737 回答
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。你能确认一下吗?

于 2013-07-27T19:31:17.370 回答