Mysql备份脚本

问题描述 投票:0回答:4

我正在使用脚本来备份 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
4个回答
1
投票

终于我明白了,我需要在

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

感谢你们的努力。


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
投票

这是一个旧线程,但我在寻找转储 mysql 表的脚本时到达那里。 现在似乎另一种方法是使用“--login-path”选项,使用命令 mysql_config_editor 设置登录路径(某种连接配置文件)。

  1. 第 1 步 - 配置登录配置文件(“登录路径”) 在命令行中输入:
mysql_config_editor set --login-path=login_profile_name --host=localhost --user=myuser --password

系统将提示您输入用户密码

  1. 创建一个调用配置文件的脚本(“--login-path =”)
#!/bin/bash

# Backup MySQL database
mysqldump --login-path=login_profile_name my_database_name --insert-ignore > path_to_backup_file/backup_file_name.sql

# Compress the backup file (optional)
gzip -f path_to_backup_file/backup_file_name.sql

确保您的用户至少拥有 PROCESS 权限。

如果您需要更多信息,我找到了这个教程以及 mysl 文档 以防万一这对其他人有帮助......

© www.soinside.com 2019 - 2024. All rights reserved.