Synology MariaDB DBeaver के माध्यम से SQL फ़ाइलें आयात करता है

हाल ही में, हमने अपने प्रबंधित वर्डप्रेस को Synology NAS में स्थानांतरित करना शुरू किया,इस टुकड़े को डेटाबेस में आयात करें,जैसा कि अपेक्षित था, बहुत सारी समस्याएं थीं,इसे एक-एक करके अध्ययन करने और हल करने में बहुत समय लगा,प्रक्रिया का दस्तावेजीकरण करें,इसे उन लोगों के साथ साझा करें जिन्हें इसकी आवश्यकता है。

 

【環境】

  1. Synology की MariaDB、phpMyAdmin बनाया गया है。
  2. .sql फ़ाइल होस्टिंग वेबसाइट से डाउनलोड की गई है,आकार लगभग 250 एमबी है。
  3. DBeaver आपके स्थानीय कंप्यूटर पर स्थापित है,स्थानीय उत्पादन प्रणाली मंजारो है。

 

【प्रमुख कदम】

  1. SSH को MariaDB में जोड़ा जा सकता है गैर-लोकलहोस्ट कनेक्ट किए गए खाते。ऐसा इसलिए है क्योंकि खातों के लिए डिफ़ॉल्ट सेटिंग्स यह हैं कि वे केवल लोकलहोस्ट (यानी, एनएएस स्वयं) से कनेक्ट हो सकते हैं।。
  2. MariaDB के लिए max_allowed_packet सीमा बढ़ाएँ。डिफ़ॉल्ट रूप से, केवल 1M है。
  3. स्थानीय रूप से मारिया-क्लाइंट स्थापित करें,DBeaver को डेटाबेस को पुनर्स्थापित करने के लिए आवश्यक निर्देशों का उपयोग करने की अनुमति देने के लिए。

 

नया मारियाडीबी खाता

# 透過 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

 

DBeaver के साथ SQL डेटाबेस पुनर्स्थापित करना
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 स्नैप किट लाइब्रेरी से डाउनलोड किया गया संस्करण है,पथ को /run/ में बदलें…,इससे बाद में निष्पादन विफल हो जाएगा。यदि हां, तो यह मामला है,इसके बजाय, आधिकारिक पैकेज लाइब्रेरी से DBeaver स्थापित करें。

5. गंतव्य डेटाबेस पर राइट-क्लिक करें,डेटाबेस को पुनर्स्थापित करने के लिए "उपकरण" - "स्क्रिप्ट निष्पादित करें" चुनें。

6. स्रोत SQL फ़ाइल का चयन करें,पुनर्स्थापित करने के लिए प्रारंभ दबाएँ。

 

《संदर्भ》

एक टिप्पणी छोड़ दो

कृपया ध्यान दें: टिप्पणी मॉडरेशन सक्षम है और अपनी टिप्पणी में देरी हो सकती है. कोई जरूरत नहीं अपनी टिप्पणी को पुनः सबमिट करने की आवश्यकता है.