לאחרונה התחלנו להעביר את וורדפרס המנוהל שלנו ל- Synology NAS,ייבוא קטע זה למסד הנתונים,כצפוי, היו הרבה בעיות,לקח הרבה זמן ללמוד ולפתור את זה אחד אחד,תעד את התהליך,שתף אותו עם מי שזקוק לו。
【環境】
- MariaDB של Synology、phpMyAdmin נבנה。
- קובץ .sql הורד מאתר האירוח,הגודל הוא כ-250MB。
- DBeaver מותקן במחשב המקומי שלך,מערכת הייצור המקומית היא Manjaro。
【שלבים עיקריים】
- ניתן להוסיף SSH ל-MariaDB מ- מארח שאינו מקומי חשבונות מחוברים。הסיבה לכך היא שהגדרות ברירת המחדל עבור חשבונות הן שהם יכולים להתחבר רק מ- localhost (כלומר, ה- NAS עצמו).。
- הגדל את מגבלת max_allowed_packet עבור MariaDB。כברירת מחדל, יש רק 1M。
- התקן 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 המקורי,לחץ על התחל כדי לשחזר。
《הפניות》