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。По умолчанию есть только 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 с помощью команды 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-файл,Нажмите «Старт» для восстановления。

 

《Примечания》

Оставить комментарий

Пожалуйста, обратите внимание: Комментарий умеренности включен и может задержать ваш комментарий. Существует нет необходимости повторно свой комментарий.