learn

نصب SQLite در CentOS Stream 9؛ ساخت و آزمون دیتابیس

آموزش عملی SQLite در CentOS Stream 9 بدون کامپایل غیرضروری یا جایگزینی کتابخانه‌های سیستم.

نصب SQLite در CentOS Stream 9 با مدیر بسته انجام می‌شود. SQLite موتور دیتابیس تعبیه‌شونده است و برخلاف MariaDB برای این تمرین سرویس شبکه‌ای جداگانه ندارد. ابزار sqlite3 محیطی برای اجرای SQL روی فایل دیتابیس فراهم می‌کند. نصب ابزار خط فرمان لزوماً نسخهٔ کتابخانهٔ داخل همهٔ برنامه‌ها را تغییر نمی‌دهد.

بستهٔ مناسب نصب SQLite در CentOS

ابتدا انتشار سیستم و بستهٔ موجود را بررسی کنید. نام بسته در مخزن CentOS Stream 9، sqlite است؛ نام فرمان اجرایی sqlite3 است. این تفاوت می‌تواند علت خطای پیدا نشدن بسته باشد.

cat /etc/os-release
dnf info sqlite
sudo dnf install sqlite
sqlite3 --version
rpm -q sqlite

بسته در مخزن رسمی AppStream ارائه می‌شود. برای این نصب عادی نیازی به افزودن EPEL یا ابزارهای کامپایل نیست. شمارهٔ نسخهٔ توزیع ممکن است از انتشار بالادستی کمتر باشد؛ وضعیت اصلاحات را با اطلاعات بستهٔ همان توزیع بسنجید.

ساخت یک دیتابیس آزمایشی

با حساب عادی در پوشه‌ای خصوصی و خارج از ریشهٔ عمومی وب کار کنید. برای این تمرین، فایل تازه با نام زیر بسازید؛ اگر از قبل وجود دارد نام دیگری انتخاب کنید تا دادهٔ موجود تغییر نکند.

mkdir -p ~/sqlite-lab
chmod 700 ~/sqlite-lab
cd ~/sqlite-lab
sqlite3 demo.db

طبق راهنمای ابزار SQLite، دادن نام فایل باعث کار روی دیتابیس دیسکی می‌شود. اجرای بدون نام فایل می‌تواند نشست حافظه‌ای موقت ایجاد کند که دادهٔ آن پس از خروج باقی نمی‌ماند.

ایجاد جدول و آزمون ذخیرهٔ داده

در محیط sqlite3 دستورهای زیر را اجرا کنید:

CREATE TABLE checks (id INTEGER PRIMARY KEY, note TEXT NOT NULL);
INSERT INTO checks (note) VALUES ('installation-test');
SELECT id, note FROM checks;
.tables
.quit

SQL با نقطه‌ویرگول پایان می‌یابد؛ دستورهای نقطه‌ای مثل .tables و .quit نقطه‌ویرگول ندارند. برای اطمینان از ماندگاری، فایل را دوباره باز کنید:

sqlite3 demo.db "SELECT id, note FROM checks;"

باید رکورد آزمایشی را ببینید. اگر جدول پیدا نشد، مسیر فعلی و نام فایل را بررسی کنید؛ ممکن است ناخواسته دیتابیس تازه‌ای در پوشهٔ دیگر باز کرده باشید.

کپی قابل بررسی از دیتابیس

برای این نمونه، از فرمان backup استفاده کنید و نام مقصد تازه انتخاب کنید:

sqlite3 demo.db ".backup demo-backup.db"
sqlite3 demo-backup.db "PRAGMA integrity_check;"
sqlite3 demo-backup.db "SELECT id, note FROM checks;"

روش پشتیبان‌گیری SQLite برای گرفتن نسخهٔ سازگار از دیتابیس طراحی شده است. کپی سادهٔ فایلِ در حال استفاده، به‌خصوص با فایل‌های جانبی journal یا WAL، جای این روش را نمی‌گیرد. integrity_check باید نتیجهٔ ok بدهد؛ این آزمون جای بررسی کامل بودن دادهٔ مورد نیاز برنامه را نمی‌گیرد.

رفع خطا و محدودیت استفاده

  • در خطای باز نشدن فایل، مسیر و مجوز پوشه را بررسی کنید؛ اجرای همه‌چیز با root راه‌حل مناسب نیست.
  • در خطای قفل بودن دیتابیس، اتصال‌ها و تراکنش‌های طولانی را بررسی کنید. حذف فایل‌های journal یا WAL راه‌حل عمومی نیست.
  • برای نیاز به نسخهٔ بالادستی متفاوت، محیط جدا و وابستگی‌های برنامه را بررسی کنید؛ کتابخانهٔ سیستم را با نصب دستی روی آن جایگزین نکنید.

طبق راهنمای انتخاب SQLite، برای نوشتن هم‌زمان سنگین یا دسترسی مستقیم چند ماشین روی فایل شبکه‌ای، دیتابیس client/server می‌تواند مناسب‌تر باشد. انتخاب باید با الگوی واقعی برنامه انجام شود، نه صرفاً ساده بودن نصب.

مطالعهٔ مرتبط

بازبینی فنی: ۱۳ آبان ۱۴۰۵. تاریخ انتشار اولیه و نشانی قبلی حفظ شده‌اند.

مطالب مرتبط

ارسال نظر

فهرست مطالب