SQL
After install
ensure secure access sudo mysql_secure_installation
Logging in
mysql -u USERNAME -p
add -h HOSTNAME IP when logging in remotely
Creating a user
CREATE USER 'NEW_USERNAME'@'localhost' IDENTIFIED BY 'NEW_PASSWORD';
Creating a database
CREATE DATABASE DATABASE_NAME
Allow user to modify Database
GRANT ALL PRIVILEGES ON DATABASE_NAME.* TO 'USERNAME'@'localhost';
Update permissions
FLUSH PRIVILEGES;
Open Database to the world
- Open file at
/etc/mysql/maridadb.conf.d/50-server.cnf - Edit line
bind-address = 127.0.0.1to ->bind-address = 0.0.0.0 - Restart db service
systemctl restart mariadb - Allow port through firewall with
ufw allow 3306
Automated backup script
#!/bin/bash
# === Config ===
BACKUP_DIR="/var/backups/mysql"
DATE=$(date +"%Y-%m-%d_%H-%M")
DB_USER="backupuser"
DB_PASS="yourpassword"
# Create backup dir if not exist
mkdir -p "$BACKUP_DIR"
# Dump all databases
mysqldump -u "$DB_USER" -p"$DB_PASS" --all-databases --single-transaction > "$BACKUP_DIR/mariadb-$DATE.sql"
# Optional: Compress the backup
gzip "$BACKUP_DIR/mariadb-$DATE.sql"
# Delete backups older than 7 days
find "$BACKUP_DIR" -name "*.sql.gz" -type f -mtime +7 -delete