【问题标题】:Mysql backup scriptMysql备份脚本
【发布时间】:2014-03-28 07:08:24
【问题描述】:

我正在使用脚本备份 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

请帮忙。

【问题讨论】:

    标签: mysql database shell scripting


    【解决方案1】:

    我终于明白了,我需要在my.cnf 中定义密码以便它自动使用,或者我必须在我正在脚本mysqldump -u root -p 'password' --all-databases > $File. 中执行的命令中定义它

    感谢你们的努力。

    【讨论】:

    • 但是当我使用 phpmyadmin 导入它时,导入命令已成功执行,但 mysql 中没有数据库表。仍然卡住。
    【解决方案2】:

    如果你的分隔符没有正确使用或关键字带有任何参数,你将得到1064错误,检查你的备份文件并尝试在sqlyog中运行该sql命令,你可以找出错误在哪里

    【讨论】:

      【解决方案3】:
      #!/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 语句中脚本中的其他字符。

      【讨论】:

      • “mysqldump -uroot”之间必须有空格
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-22
      • 1970-01-01
      • 1970-01-01
      • 2016-07-05
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      相关资源
      最近更新 更多