我正在使用脚本来备份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
请帮忙。
答案 0 :(得分:1)
最后我明白了,我需要在my.cnf
中定义密码,以便自动使用或者我必须在我在脚本mysqldump -u root -p 'password' --all-databases > $File.
中执行的命令中定义它
感谢您的努力。
答案 1 :(得分:0)
如果未正确使用分隔符或任何参数的关键字,您将收到1064错误,检查备份文件并尝试在sqlyog中运行该sql命令,您可以找出错误在哪里
答案 2 :(得分: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语句中你脚本中的其他一些字符。