Synology MariaDB importe des fichiers sql via DBeaver

Récemment, nous avons commencé à déplacer notre WordPress géré vers un NAS Synology,Importer cette pièce dans la base de données,Comme prévu, il y a eu beaucoup de problèmes,Il a fallu beaucoup de temps pour l’étudier et le résoudre un par un,Documenter le processus,Partagez-le avec ceux qui en ont besoin。

 

【環境】

  1. MariaDB de Synology、phpMyAdmin a été construit。
  2. Le fichier .sql a été téléchargé à partir du site Web d’hébergement.,La taille est d’environ 250 Mo。
  3. DBeaver est installé sur votre ordinateur local,Le système de production local est Manjaro。

 

【Étapes clés】

  1. SSH peut être ajouté à MariaDB à partir de Non-localhost Comptes connectés。En effet, les paramètres par défaut des comptes sont qu’ils ne peuvent se connecter qu’à partir de localhost (c’est-à-dire le NAS lui-même).。
  2. Augmenter la limite de max_allowed_packet pour MariaDB。Par défaut, il n’y a que 1M。
  3. Installer maria-clients localement,pour permettre à DBeaver d’utiliser les directives requises pour restaurer la base de données。

 

Nouveau compte 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

 

Ajustement des limites de paquets 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

 

Restauration d’une base de données SQL avec DBeaver
1. Parce que DBeaver a besoin de restaurer la base de données via mariadb ou mysql,Par conséquent, vous devez installer le package « mariadb-clients » ou « mysql-client » localement。

2. Confirmez l’emplacement de mysql à l’aide de la commande which mysql,Par défaut, il sera dans /usr/bin/mysql。

which mysql

3. Dans l’écran DBeaver qui configure la connexion à la base de données,Vous devez vous rendre sur le client local pour définir l’emplacement de mysql。
Cliquez sur Parcourir sur le client local。

4. Un nouvel emplacement pour MySQL a été ajouté。
◎ Selon la description du document officiel de DBeaver,Si l’emplacement de mysql est dans /usr/bin/mysql,Ensuite, il est défini sur /usr,Sautez le /bin/mysql qui suit。
◎ Si DBeaver est la version téléchargée à partir de la bibliothèque du kit Snap,Convertissez le chemin d’accès en /run/…,Cela entraînera l’échec des exécutions ultérieures。Si c’est le cas, c’est le cas,Au lieu de cela, installez DBeaver à partir de la bibliothèque de paquets officielle。

5. Faites un clic droit sur la base de données de destination,Sélectionnez « Outils » - « Exécuter le script » pour restaurer la base de données。

6. Sélectionnez le fichier SQL source,Appuyez sur Démarrer pour restaurer。

 

《Références》

Laisser un commentaire

S'il vous plaît noter: La modération des commentaires est activée et peut retarder votre commentaire. Il n'est pas nécessaire de renvoyer votre commentaire.