2013-07-26 113 views
2

我正在使用mysql工作臺,它在linux下有命令mysqldbcopy。當我嘗試使用它時,我必須提供連接字符串(請參閱示例here)。mysqldbcopy - 錯誤1045:拒絕訪問用戶'root'@'localhost'(使用密碼:否)

我的密碼包含號(&),因此,我要調用mysqldbcopy如下(字符轉義建議)

mysqldbcopy \ 
    --source "root:&[email protected]:3310:/var/run/mysqld/mysqld.sock" \ 
    --destination "root:&[email protected]:3310:/var/run/mysqld/mysqld.sock" \ 
    old:new 

,但我收到以下錯誤,它通過google搜索,我發現,它意味着我不提供正確的密碼(糾正我,如果我錯了)

# Source on localhost: ... ERROR: Cannot connect to the Source server. 
Error 1045: Access denied for user 'root'@'localhost' (using password: NO) 

可以請一個棚的問題出在哪裏輕?

是的,我相信密碼是正確的,它已從.my.cnf複製,我能夠使用它在mysql命令

+0

你看到**使用密碼的部分:NO **?這意味着你正在嘗試連接而不使用密碼 - 所以你一定要在錯誤的地方尋找...... – alfasin

+0

@alfasin,如果上面的命令不正確,你能否顯示正確的方式來調用'mysqldbcopy'? – MrRoth

+0

也許密碼中的'&'是問題 - 嘗試將密碼更改爲不包含特殊字符的內容 – alfasin

回答

0

通過查看您所提供的鏈接,我可以斷定這 -

您正在使用 -

mysqldbcopy \ 
    --source "root:&[email protected]:3310:/var/run/mysqld/mysqld.sock" \ 
    --destination "root:&[email protected]:3310:/var/run/mysqld/mysqld.sock" \ 
    old:new 

但鏈接顯示,

mysqldbcopy \ 
    --source=root:[email protected]lhost:3310:/test123/mysql.sock \ 
    --destination=root:[email protected]:3310:/test123/mysql.sock \ 
    util_test:util_test_copy 

結論,

  1. --source--destination後,該鏈接您提供的例子有'='

  2. 如果雙引號不起作用,請試用單引號。

  3. 驗證端口3310是否正確。默認我猜你安裝的時候是3306。你能確認嗎?

+0

感謝您的回覆,我嘗試了兩種方法。通過測試,我可以確認使用'='對於正確的解析不是強制性的。 – MrRoth

+0

@MrRoth:請檢查一下,我已經用新的第3點編輯了我的答案。希望能幫助到你! –

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,如果目標數據庫名已存在 &需要強行覆蓋

相關問題