زمانی که تعداد یوزرها بالا بره و نودهای زیادی داشته باشید، sqlite ممکنه به درستی کار نکنه! پیشنهاد میشه که حتما از mySQL استفاده کنید که توانایی مدیریت دیتابیس های بزرگ تر رو داره ✔️
👀 بریم سراغ آموزش مهاجرت به mySQL 📊
فایل داکر رو با دستور زیر باز کنید:
➡️
nano /opt/marzban/docker-compose.yml📝متن زیر رو جایگزین و فایل رو ذخیره کنید:
services:
marzban:
image: gozargah/marzban:latest
restart: always
env_file: .env
network_mode: host
volumes:
- /var/lib/marzban:/var/lib/marzban
depends_on:
- mysql
mysql:
image: mysql:latest
restart: always
env_file: .env
network_mode: host
command: --bind-address=127.0.0.1 --mysqlx-bind-address=127.0.0.1 --disable-log-bin
environment:
MYSQL_DATABASE: marzban
volumes:
- /var/lib/marzban/mysql:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: always
env_file: .env
network_mode: host
environment:
PMA_HOST: 127.0.0.1
APACHE_PORT: 8010
UPLOAD_LIMIT: 1024M
depends_on:
- mysql
✉️ فایل env رو با دستور زیر باز کنید:
➡️
nano /opt/marzban/.env⬇️ متن زیر رو به فایل env اضافه کنید:
SQLALCHEMY_DATABASE_URL = "mysql+pymysql://root:DB_PASSWORD@127.0.0.1/marzban"
MYSQL_ROOT_PASSWORD = DB_PASSWORD
در متن بالا به جای DB_PASSWORD پسورد دلخواه خودتون رو برای دیتابیس وارد کنید سپس خط زیر رو با افزودن # به کامنت تبدیل کنید.
#SQLALCHEMY_DATABASE_URL = "sqlite:////var/lib/marzban/db.sqlite3"
💾 فایل env رو ذخیره و مرزبان رو ری استارت کنید:
➡️
marzban restart⬇️ با دستور زیر sqlite3 رو نصب کنید:
➡️
apt install sqlite3🎮 دستور زیر رو وارد کنید:
sqlite3 /var/lib/marzban/db.sqlite3 '.dump --data-only' | sed "s/INSERT INTO \([^ ]*\)/REPLACE INTO \`\\1\`/g" > /tmp/dump.sql
😆 وارد دایرکتوری opt/marzban شوید:
➡️
cd /opt/marzban🥲 دستور زیر رو اجرا کنید تا یک کپی از فایل dump.sql در کانتینر MySQL ایجاد کنید:
➡️
docker compose cp /tmp/dump.sql mysql:/dump.sql🔵 در مرحله بعد دستور زیر رو وارد کنید:
docker compose exec mysql mysql -u root -p -h 127.0.0.1 marzban -e "SET FOREIGN_KEY_CHECKS = 0; SET NAMES utf8mb4; SOURCE dump.sql;"
❓پسوردی که برای دیتابیس انتخاب کرده بودین رو میپرسه که باید وارد کنید.
🗑فایل tmp/dump.sql را پاک کنید:
➡️
rm /tmp/dump.sql 🔄 مرزبان رو ری استارت کنید و تمام:
➡️
marzban restart💻 UbuntuCommands
