يقوم Synology MariaDB باستيراد ملفات sql عبر DBeaver

في الآونة الأخيرة ، بدأنا في نقل WordPress المدار إلى Synology NAS,استيراد هذه القطعة في قاعدة البيانات,كما هو متوقع ، كان هناك الكثير من المشاكل,استغرق الأمر الكثير من الوقت للدراسة وحلها واحدا تلو الآخر,توثيق العملية,شاركها مع من يحتاجون إليها。

 

【環境】

  1. MariaDB من Synology、تم بناء phpMyAdmin。
  2. تم تنزيل ملف .sql من موقع الاستضافة,الحجم حوالي 250 ميجابايت。
  3. DBeaver مثبت على جهاز الكمبيوتر المحلي الخاص بك,نظام الإنتاج المحلي هو مانجارو。

 

【الخطوات الرئيسية】

  1. يمكن إضافة SSH إلى MariaDB من المضيف غير المحلي الحسابات المتصلة。وذلك لأن الإعدادات الافتراضية للحسابات هي أنه لا يمكنهم الاتصال إلا من المضيف المحلي (أي NAS نفسه).。
  2. زيادة حد max_allowed_packet ل MariaDB。بشكل افتراضي ، هناك 1 مليون فقط。
  3. تثبيت عملاء ماريا محليا,للسماح ل DBeaver باستخدام التوجيهات المطلوبة لاستعادة قاعدة البيانات。

 

حساب MariaDB جديد

# 透過 SSH 連線 Synology NAS
ssh myaccount@192.168.1.1 # myaccount 為 Synology 帳戶;192.168.1.1 為 Synology 位址

# 確認 bind-address 為 0.0.0.0 (預設值)
more /volume1/@appstore/MariaDB10/usr/local/mariadb10/etc/mysql/my.cnf | grep bind-address

# 確認 port 為 3306,且 Synology 上的防火牆有開啟對應的 port
more /var/packages/MariaDB10/etc/my_port.cnf

# 以 root 身份登入資料庫
/volume1/@appstore/MariaDB10/usr/local/mariadb10/bin/mysql --user=root --port=0 --password --host=localhost

# 檢視資料庫現有的使用者 
SELECT User, Host FROM mysql.user; # 記得最後要輸入分號

# 建立一個 dbeaver-restore 帳戶,密碼為 superstrongpassword,並允許其從 192.168.*.* 登入
CREATE USER 'dbeaver-restore'@'192.168.%' IDENTIFIED BY 'superstrongpassword';

# 給予 dbeaver-restore 存取所有資料庫的權限
GRANT ALL PRIVILEGES ON *.* TO 'dbeaver-restore'@'192.168.%' WITH GRANT OPTION;

# 斷開資料庫連線
exit

 

ضبط حدود حزمة MariaDB

#  確認目前 [mysqld] 底下的 max_allowed_packet 的數值
more /volume1/@appstore/MariaDB10/usr/local/mariadb10/etc/mysql/my.cnf

# Synology 建議不要修改預設的 my.cnf 檔案
# 而是使用下面路徑 my.cnf 檔來套用自訂值 
sudo vim /var/packages/MariaDB10/etc/my.cnf

# 在 vim 按 i 後,貼上下面文字
[mysqld]
max_allowed_packet = 500M # 設成大於 sql 檔大小的數值

# 按 ESC 後,存檔離開
:wq!

# 重啟 MariaDB 服務
sudo /usr/syno/bin/synopkg restart MariaDB10

 

استعادة قاعدة بيانات SQL باستخدام DBeaver
1. لأن DBeaver يحتاج إلى استعادة قاعدة البيانات عبر mariadb أو mysql,لذلك ، تحتاج إلى تثبيت حزمة "mariadb-clients" أو "mysql-client" محليا。

2. تأكيد موقع mysql باستخدام الأمر which mysql,بشكل افتراضي ، سيكون في /usr/bin/mysql。

which mysql

3. في شاشة DBeaver التي تقوم بإعداد اتصال قاعدة البيانات,تحتاج إلى الانتقال إلى العميل المحلي لتعيين موقع mysql。
انقر فوق استعراض على العميل المحلي。

4. تمت إضافة موقع جديد ل MySQL。
◎ وفقا لوصف المستند الرسمي ل DBeaver,إذا كان موقع mysql في /usr/bin/mysql,ثم يتم تعيين هذا إلى /usr,تخطي /bin/mysql التالي。
◎ إذا كان DBeaver هو الإصدار الذي تم تنزيله من مكتبة Snap kit,تحويل المسار إلى /run/…,سيؤدي ذلك إلى فشل عمليات التنفيذ اللاحقة。إذا كان الأمر كذلك ، فهذا هو الحال,بدلا من ذلك ، قم بتثبيت DBeaver من مكتبة الحزم الرسمية。

5. انقر بزر الماوس الأيمن على قاعدة البيانات الوجهة,حدد "أدوات" - "تنفيذ البرنامج النصي" لاستعادة قاعدة البيانات。

6. حدد ملف SQL المصدر,اضغط على ابدأ للاستعادة。

 

《المراجع》

اترك التعليق

يرجى ملاحظة: الاعتدال هو مكن تعليق، وربما تؤخر تعليقك. ليست هناك حاجة لإعادة تعليقك.