2014-03-28 182 views
1

我正在使用腳本來備份Mysql中的所有數據庫。Mysql備份腳本

腳本是:

#!/bin/bash 
cd /root/Desktop/backup 
echo 「You are In Backup Directory」 

Now=$(date +%d-%m-%Y--%H:%M:%S) 

File=$Now.sql 

mysqldump –u root --all-databases > $File 

echo 「Your Database Backup Successfully Completed」 

但是,當我嘗試恢復其給我下面的錯誤數據庫,也沒有回到一切只是創建了一個文件:

SQL查詢:

Usage: mysqldump [OPTIONS] database [tables] 

OR  mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] 

OR  mysqldump [OPTIONS] --all-databases [OPTIONS] 

For more options, use mysqldump --help 

MySQL表示:文件

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Usage: mysqldump [OPTIONS] database [tables] OR mysqldump [OPTIONS] --databa' at line 1

請幫忙。

回答

1

最後我得到它,我需要在my.cnf定義密碼,因此它會自動使用或我有我在腳本執行mysqldump -u root -p 'password' --all-databases > $File.

感謝你的努力的傢伙的命令來定義它。

+0

之間存在空格但仍然當我用phpmyadmin導入它時,導入命令執行得很清楚,但是mysql中沒有數據庫表。 – vic

0

你會得到1064錯誤,如果你的分隔符不正確使用或與參數關鍵字,請檢查您的備份文件,並嘗試運行SQLyog的是SQL命令,你可以找出其中的錯誤

0
#!/bin/bash 
cd /root/Desktop/backup 
echo "You are In Backup Directory" 

Now=$(date +%d-%m-%Y--%H:%M:%S) 
File=$Now.sql 
mysqldump -uroot -p --all-databases > $File 

echo "Your Database Backup Successfully Completed" 

由於「 - 」你在mysqldump語句中的腳本中存在其他某個字符,所以你得到了這個問題。

+0

必須在「mysqldump -uroot」 – vic