2017-02-22 40 views
1

有沒有人知道如何在數據庫有一個短劃線作爲名稱的第一個字符時讓mysqldump工作?例如:-s-oddly-named -db在數據庫名稱的開始部分使用破折號的MySQL轉儲

我需要將此數據庫轉儲爲客戶端的存檔,但我從來沒有見過有人用短劃線創建數據庫作爲第一個字符。在MySQL本身中,我可以使用back-ticks來「使用」它,一切正常,但我無法讓mysqldump工作。

mysqldump -p --databases '-s-oddly-named-db'

給我的迴應: mysqldump: unknown option '-s'

+0

你可以暫時重命名數據庫嗎?如果你必須使用mysqldump,我認爲恐懼這可能是你唯一的選擇。 – BenM

回答

-1

使用--

例如:

mysqldump -u root -pXXXX --databases -- -xDatabase

更多關於什麼呢--從指:

除非另有說明,在本 部分作爲接受由前面的選項記錄每個內置命令 - 接受 - 以表示選項的 端。

編輯感謝@Barmar評論

使用--信號的選擇到底是一個常見的約定,這是由getopts()庫函數來實現。這大概是爲什麼它與mysdqldump一起工作,即使它沒有在文檔中提到。

+1

你爲什麼要引用'bash'文檔?這不是內置的bash嗎?答案是正確的。 – Barmar

+1

使用'--'來表示選項結束是一個常見的約定,它由'getopts()'庫函數實現。這大概是爲什麼它可以與'mysdqldump'一起使用,即使它在文檔中沒有提到。 – Barmar

+0

我剛纔引用了bash,因爲我無法在''''''功能中找到任何參考,如果你有這個請提及它。 – hassan

相關問題