الهدف
تشرح هذه الوثائق من الألف إلى الياء كيفية تثبيت MySQL 8.4 على Debian 13 باستخدام طريقة Oracle الرسمية عبر APT، ثم كيف:
- تأكد من أن MySQL يعمل
- تأمين المثيل
- ضبط التكوين الأساسي
- انقل datadir إذا لزم الأمر
- إدارة الخدمة باستخدام
systemd
نقطة مهمة حول Debian 13
اعتبارًا من 13 أبريل 2026، ينشر مستودع APT MySQL حزمًا لـ Debian 13 trixie، بما في ذلك mysql-8.4-lts.
- يمكن استخدام Debian 13 مباشرةً مع مستودع Oracle MySQL
- تظل الطريقة الموصى بها هي إيداع APT MySQL
- ليس من الضروري استخدام حزم Debian الأصلية إذا كان الهدف هو Oracle MySQL 8.4
الهندسة المعمارية الموصى بها
للتثبيت النظيف:
- الحد الأدنى من نظام التشغيل Debian 13
- اسم المضيف الصحيح
- IP ثابت
- منطقة زمنية ثابتة
- قرص بيانات منفصل إذا كان الجهاز مخصصًا للإنتاج
الحد الأدنى المعقول من التكوين:
| مكون | الحد الأدنى |
|---|---|
| وحدة المعالجة المركزية الافتراضية | 2 |
| ذاكرة الوصول العشوائي | 4 جيجا |
| قرص النظام | 20 جيجا |
| قرص البيانات | 50 جيجابايت+ (بيانات منفصلة) |
1. تحضير Debian 13
apt-get update
apt-get -y upgrade
apt-get install -y \
curl wget gnupg lsb-release ca-certificates \
apt-transport-https net-tools dnsutils sudo
تحذير: الحزمة software-properties-common غير موجودة في Debian 13 (إنها حزمة Ubuntu). لا تدرجه.
timedatectl set-timezone Europe/Paris
cat /etc/os-release
تحقق من ذلك VERSION_CODENAME=trixie.
2. أضف مستودع APT MySQL Oracle
الخيار أ – مع mysql-apt-config (الطريقة الرسمية)
cd /tmp
wget https://dev.mysql.com/get/mysql-apt-config_0.8.36-1_all.deb
dpkg -i mysql-apt-config_0.8.36-1_all.deb
apt-get update
الخيار ب – ملف APT اليدوي (مستحسن)
هام: انتهت صلاحية مفتاح GPG RPM-GPG-KEY-mysql-2023 في أكتوبر 2025. استخدم RPM-GPG-KEY-mysql-2025.
mkdir -p /etc/apt/keyrings
wget -O /etc/apt/keyrings/mysql.gpg https://repo.mysql.com/RPM-GPG-KEY-mysql-2025
cat >/etc/apt/sources.list.d/mysql.list <<'EOF'
deb [signed-by=/etc/apt/keyrings/mysql.gpg] http://repo.mysql.com/apt/debian/ trixie mysql-8.4-lts mysql-tools
EOF
apt-get update
3. قم بتثبيت MySQL 8.4
DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server
يؤدي هذا إلى تثبيت الخادم (mysql-community-server) والعميل (mysql-community-client) والمكونات الإضافية والملفات الشائعة.
dpkg -l | grep -E 'mysql-(server|client|community)'
4. التحقق من الخدمة
systemctl status mysql --no-pager
systemctl is-active mysql
systemctl is-enabled mysql
mysql --version
mysql -Nse "SELECT VERSION();"
5. الاتصال الأول
باستخدام DEBIAN_FRONTEND=noninteractive، يقوم MySQL 8.4 على Debian 13 بتكوين مصادقة الجذر عبر مقبس Unix (بدون كلمة مرور):
mysql
أو :
sudo mysql
6. تأمين المثيل
عبر الأداة الرسمية:
mysql_secure_installation
أو يدويًا:
DELETE FROM mysql.user WHERE User='';
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
FLUSH PRIVILEGES;
7. موقع الملف
| ملف | المسار |
|---|---|
| التكوين | /etc/mysql/ |
| خادم ثنائي | /usr/sbin/mysqld |
| العميل | /usr/bin/mysql |
| داتادير | /var/lib/mysql |
| خدمة سيستيم دي | mysql.service |
| التكوين المخصص | /etc/mysql/mysql.conf.d/zz-*.cnf |
8. التكوين الأساسي الموصى به
أضف ملفًا مخصصًا بدلاً من تعديل الملفات الموجودة:
cat >/etc/mysql/mysql.conf.d/zz-custom.cnf <<'EOF'
[mysqld]
bind-address = 0.0.0.0
mysqlx-bind-address = 0.0.0.0
skip_name_resolve = ON
max_connections = 200
innodb_buffer_pool_size = 1G
log_error_verbosity = 2
EOF
systemctl restart mysql
يفحص :
mysql -Nse "SHOW VARIABLES LIKE 'bind_address';"
mysql -Nse "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"
9. افتح المنفذ 3306
إذا كان يجب على الخادم قبول الاتصالات عن بعد:
CREATE USER 'admin'@'10.68.68.%' IDENTIFIED BY 'StrongPasswordHere';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'10.68.68.%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
ss -lntp | grep 3306
10. انقل datadir إلى `/srv/mysql
`
bash
systemctl stop mysql
mkdir -p /srv/mysql
rsync -aHAX /var/lib/mysql/ /srv/mysql/
chown -R mysql:mysql /srv/mysql
chmod 750 /srv/mysql
cat >/etc/mysql/mysql.conf.d/zz-datadir.cnf <<'EOF'
[mysqld]
datadir = /srv/mysql
EOF
systemctl start mysql
mysql -Nse "SELECT @@datadir;"
النتيجة المتوقعة: /srv/mysql/
11. تمكين performance_schema
نشط بالفعل بشكل افتراضي على MySQL 8.4.8:
mysql -Nse "SELECT @@performance_schema;"
إذا لزم الأمر:
cat >/etc/mysql/mysql.conf.d/zz-performance.cnf <<'EOF'
[mysqld]
performance_schema = ON
EOF
systemctl restart mysql
12. أنشئ مستخدمًا إداريًا
تجنب استخدام root لكل شيء:
CREATE USER 'dba'@'10.68.68.%' IDENTIFIED BY 'VeryStrongPassword';
GRANT ALL PRIVILEGES ON *.* TO 'dba'@'10.68.68.%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
13. احفظ التكوين
tar czf /root/mysql-config-backup.tar.gz /etc/mysql
dpkg -l | grep mysql > /root/mysql-packages.txt
14. أوامر التشغيل الشائعة
systemctl start mysql
systemctl stop mysql
systemctl restart mysql
journalctl -u mysql -n 100 --no-pager
15. الفحص النهائي
systemctl is-active mysql
mysql --version
mysql -Nse "SELECT VERSION();"
mysql -Nse "SELECT @@datadir;"
mysql -Nse "SELECT @@performance_schema;"
ss -lntp | grep 3306
16. المزالق المتكررة
- لا تخلط بين MariaDB وMySQL Oracle — اختر قطاعًا واحدًا فقط
- انتهت صلاحية مفتاح GPG —
RPM-GPG-KEY-mysql-2023منتهي الصلاحية → استخدمRPM-GPG-KEY-mysql-2025 software-properties-commonغير موجود — خاص بـ Ubuntu، وغير متوفر على Debian 13- مصدر APT غير صالح — استخدم
trixie، وليسbookworm - تحرير
mysqld.cnfمباشرة — تفضل ملفzz-*.cnfفي/etc/mysql/mysql.conf.d/ - انقل datadir دون إيقاف MySQL — أوقف الخدمة دائمًا قبل النسخ
- كشف 3306 بدون تصفية — الحد من المضيفين، والتصفية على جدار الحماية
إجراء مضغوط
apt-get update && apt-get -y upgrade
apt-get install -y wget gnupg ca-certificates curl sudo
mkdir -p /etc/apt/keyrings
wget -O /etc/apt/keyrings/mysql.gpg https://repo.mysql.com/RPM-GPG-KEY-mysql-2025
cat >/etc/apt/sources.list.d/mysql.list <<'EOF'
deb [signed-by=/etc/apt/keyrings/mysql.gpg] http://repo.mysql.com/apt/debian/ trixie mysql-8.4-lts mysql-tools
EOF
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server
systemctl enable --now mysql
mysql -e "DELETE FROM mysql.user WHERE User=''; DROP DATABASE IF EXISTS test; DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'; FLUSH PRIVILEGES;"
نتيجة التثبيت الذي تم اختباره
تم التثبيت في 13 أبريل 2026 على VM Proxmox:
- VM: VMID 115،
mysql84-deb13، IP10.68.68.190 - نظام التشغيل: Debian 13.4 (تريكسي)، النواة 6.12.74
- MySQL: 8.4.8 (MySQL Community الخادم - GPL)
- الخدمة: نشطة، مفعلة عند الإقلاع
- التكوين: ربط 0.0.0.0، Skip_name_resolve ON، innodb_buffer_pool_size 1G، max_connections 200
- مخطط_الأداء: نشط
- المنفذ 3306: الاستماع على 0.0.0.0
الخلاصة
في Debian 13، الطريقة الصحيحة لتثبيت MySQL 8.4 هي استخدام مستودع Oracle MySQL APT.
التصحيحات مقارنة بالمستند الأولي:
- مفتاح GPG:
RPM-GPG-KEY-mysql-2023منتهي الصلاحية ← استخدمRPM-GPG-KEY-mysql-2025 - المتطلب السابق: إزالة
software-properties-common(غير موجود في Debian 13) - اتصال الجذر: مع
DEBIAN_FRONTEND=noninteractive، يتصل الجذر عبر المقبس بدون كلمة مرور - performance_schema: نشط بالفعل بشكل افتراضي على MySQL 8.4.8
تعليقات (0)
لا توجد تعليقات حتى الآن.
اترك تعليقا