Setting up an automated mySQL / MariaDB backup schedule

Just digging deeper in automating thing, so I made two scripts:

# Define the path to the backup script

# Define the cron job command to run the backup script once a week (every Sunday at midnight)

# Add the cron job to the crontab
(crontab -l 2>/dev/null; echo "$CRON_COMMAND") | crontab -

echo "Backup cron job set up successfully."

And the script that executes the backup every Sunday:

# Define the directory where backup files will be stored

# Ensure the backup directory exists
mkdir -p "$BACKUP_DIR"

# Define the filename for the backup file (include date in the filename)
BACKUP_FILE="$BACKUP_DIR/mysql_backup_$(date +%Y-%m-%d_%H-%M-%S).sql"

# Define the compressed filename

# Define MySQL username and password (replace with your MySQL credentials)

# Dump all databases into a single SQL file
mysqldump -u "$DB_USER" -p"$DB_PASS" --all-databases > "$BACKUP_FILE"

# Add permissions to the backup file
chmod 600 "$BACKUP_FILE"

# Compress the backup file

echo "Database backup completed. Backup stored in: $COMPRESSED_FILE"

To make the script executable:

sudo chmod +x
sudo chmod +x

and run it with

sudo ./


[Fixed] Cannot load from mysql.proc. The table is probably corrupted

Something spoopy was going on in my database. All was working fine, but it kept spewing out the following error:

Cannot load from mysql.proc. The table is probably corrupted

So this was fixed by going into the database terminal and entering:

mysql_upgrade -u root -p

Make sure you have the root/privileged password ready. Depending on how many databases you have and how large they are; it can take a bit of time. Have patience.