۱. نصب
sudo zypper install -y mariadb mariadb-client
sudo systemctl enable --now mariadb
mariadb --version۲. امنسازی اولیه
sudo mariadb-secure-installationکاربران ناشناس و پایگاه دادهی test را حذف کنید و ورود root از راه دور را ببندید. در MariaDB جدید، root محلی با unix_socket وارد میشود، یعنی sudo mariadb بدون رمز کار میکند و این امن است.
۳. پایگاه داده و کاربر
sudo mariadb <<'SQL'
CREATE DATABASE appdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'app'@'192.168.10.%' IDENTIFIED BY 'change-me';
GRANT ALL PRIVILEGES ON appdb.* TO 'app'@'192.168.10.%';
FLUSH PRIVILEGES;
SQLutf8mb4 برای متن فارسی و ایموجی لازم است. utf8 قدیمی فقط تا ۳ بایت را پشتیبانی میکند.
۴. تنظیمات
فایل اصلی /etc/my.cnf را دست نزنید و یک فایل در /etc/my.cnf.d/ بسازید. /etc/my.cnf.d/50-server.cnf:
[mysqld]
bind-address = 192.168.10.35
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
innodb_buffer_pool_size = 2G
max_connections = 200
slow_query_log = 1
long_query_time = 2innodb_buffer_pool_size را روی سرور اختصاصی حدود ۵۰ تا ۷۰ درصد RAM بگذارید.
sudo systemctl restart mariadb
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" service name="mysql" accept'
sudo firewall-cmd --reload۵. بکاپ روزانه
sudo mkdir -p /var/backups/mariadb
sudo tee /etc/cron.d/mariadb-backup >/dev/null <<'EOT'
15 2 * * * root mariadb-dump --single-transaction --routines --all-databases | gzip > /var/backups/mariadb/all-$(date +\%F).sql.gz && find /var/backups/mariadb -mtime +14 -delete
EOT--single-transaction بدون قفل کردن جدولهای InnoDB یک نسخهی سازگار میگیرد. بازیابی:
gunzip -c /var/backups/mariadb/all-2026-11-08.sql.gz | sudo mariadb