Synology MariaDB מייבאת קבצי SQL באמצעות DBeaver

לאחרונה התחלנו להעביר את וורדפרס המנוהל שלנו ל- Synology NAS,ייבוא קטע זה למסד הנתונים,כצפוי, היו הרבה בעיות,לקח הרבה זמן ללמוד ולפתור את זה אחד אחד,תעד את התהליך,שתף אותו עם מי שזקוק לו。

 

【環境】

  1. MariaDB של Synology、phpMyAdmin נבנה。
  2. קובץ .sql הורד מאתר האירוח,הגודל הוא כ-250MB。
  3. DBeaver מותקן במחשב המקומי שלך,מערכת הייצור המקומית היא Manjaro。

 

【שלבים עיקריים】

  1. ניתן להוסיף SSH ל-MariaDB מ- מארח שאינו מקומי חשבונות מחוברים。הסיבה לכך היא שהגדרות ברירת המחדל עבור חשבונות הן שהם יכולים להתחבר רק מ- localhost (כלומר, ה- NAS עצמו).。
  2. הגדל את מגבלת max_allowed_packet עבור MariaDB。כברירת מחדל, יש רק 1M。
  3. התקן maria-clients באופן מקומי,כדי לאפשר ל- 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 באמצעות הפקודה איזה mysql,כברירת מחדל, זה יהיה ב-/usr/bin/mysql。

which mysql

3. במסך DBeaver המגדיר את חיבור מסד הנתונים,עליך לעבור ללקוח המקומי כדי להגדיר את המיקום של mysql。
לחץ על עיון בלקוח המקומי。

4. נוסף מיקום חדש ל- MySQL。
◎ על פי תיאור המסמך הרשמי של DBeaver,אם המיקום של mysql נמצא ב-/usr/bin/mysql,אז זה מוגדר ל-/usr,דלג על /bin/mysql הבא。
◎ אם DBeaver היא הגרסה שהורדה מספריית ערכת Snap,המרת הנתיב ל- /run/…,פעולה זו תגרום לכישלון הביצוע הבא。אם כן, זה המקרה,במקום זאת, התקן את DBeaver מספריית החבילות הרשמית。

5. לחץ באמצעות לחצן העכבר הימני על מסד הנתונים המשמש כיעד,בחר "כלים" - "הפעל סקריפט" כדי לשחזר את מסד הנתונים。

6. בחר את קובץ ה-SQL המקורי,לחץ על התחל כדי לשחזר。

 

《הפניות》

השאיר תגובה

שים לב: תגובת התמתנות מופעלת ועלולה לעכב את התגובה שלך. אין צורך להגיש מחדש את התגובה שלך.