2017-04-24 61 views
0

我有MySQL用戶company_dev誰有權訪問DB company_dev和用戶company_prod誰有權訪問DB company_prod當使用命令行將SQL文件導入數據庫時​​,使用了錯誤的MySQL用戶

當我在我的Debian服務器上作爲根登錄時,我嘗試將SQL文件導入到我的company_dev數據庫中。

這是我使用的命令:mysql -u company_dev -pMyPassword company_dev < some_db.sql

但我得到這個錯誤:

Access denied for user 'company_dev'@'localhost' to database 'company_prod'

如果我正確理解這條消息 - 有一個文件some_db.sql寫入company_prod企圖數據庫,即使我把company_dev在命令中?

這怎麼可能?

回答

1

注意:以root身份登錄到服務器並不類似於mysql服務器的root用戶,它們是不同的。

請檢查以下內容:

  • 檢查密碼正確,可能還需要把它放在quates: -p'passWordHere」

  • 文件some_db.sql可能對有一些陳述插入到 someDbName中。覈實。

  • 您使用導入用戶 -u company_dev 你需要確保這個用戶有權限。

要授予權限,使用此SQL,則需要像這樣:

GRANT [type of permission] ON company_prod TO ‘company_dev’@'localhost’; 

這一切都取決於你需要給用戶的權限, 所有特權將是這樣的:

GRANT ALL PRIVILEGES ON * . * TO 'company_dev'@'localhost'; 
+0

謝謝你的回答。我會看看你提供的鏈接。 但是,我不確定我是否完全清楚。 用戶'company_dev'擁有'company_dev'數據庫的所有權限。 但是,當我從我的問題執行命令,似乎用戶'company_dev'試圖將SQL文件導入到'company_prod'數據庫。 儘管在命令中明確指出SQL文件必須由用戶'company_dev'導入到'company_dev'數據庫! –

+0

我認爲你寫的第二項是問題 - 「文件some_db.sql可能有一些語句要插入someDbName,請檢查它。」 有SQL 'CREATE DATABASE/*!32312 IF NOT EXISTS */company_prod/*!40100 DEFAULT CHARACTER SET utf8mb4 * /; USE company_prod;' –

+0

我需要找到一種方法,只從'company_prod'中導出數據,不需要這些命令來創建數據庫。 所以我可以在'company_dev'中導入這些數據。 –

相關問題