Synology MariaDB는 DBeaver를 통해 sql 파일을 가져옵니다.

최근에 우리는 관리형 WordPress를 Synology NAS로 이전하기 시작했습니다,이 부분을 데이터베이스로 가져오기,예상대로 많은 문제가있었습니다,하나씩 공부하고 해결하는 데 많은 시간이 걸렸습니다,프로세스 문서화,필요한 사람들과 공유하십시오.。

 

【環境】

  1. 시놀로지의 MariaDB、phpMyAdmin이 구축되었습니다.。
  2. .sql 파일은 호스팅 웹 사이트에서 다운로드되었습니다.,크기는 약 250MB입니다.。
  3. DBeaver가 로컬 컴퓨터에 설치되어 있습니다.,현지 생산 시스템은 Manjaro입니다.。

 

【주요 단계】

  1. SSH는 다음에서 MariaDB에 추가할 수 있습니다. 비 localhost 연결된 계정。이는 계정의 기본 설정이 localhost(즉, NAS 자체)에서만 연결할 수 있기 때문입니다.。
  2. MariaDB의 max_allowed_packet 한도 늘리기。기본적으로 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

 

DBeaver를 사용하여 SQL 데이터베이스 복원
1. DBeaver는 mariadb 또는 mysql을 통해 데이터베이스를 복원해야 하기 때문입니다.,따라서 "mariadb-clients" 또는 "mysql-client" 패키지를 로컬에 설치해야 합니다。

2. which mysql 명령을 사용하여 mysql의 위치를 확인합니다.,기본적으로 /usr/bin/mysql에 있습니다.。

which mysql

3. 데이터베이스 연결을 설정하는 DBeaver 화면에서,mysql의 위치를 설정하려면 로컬 클라이언트로 이동해야 합니다。
로컬 클라이언트에서 Browse(찾아보기)를 클릭합니다.。

4. MySQL의 새 위치가 추가되었습니다.。
◎ DBeaver의 공식 문서 설명에 따름,mysql의 위치가 / usr / bin / mysql에있는 경우,그런 다음 / usr로 설정됩니다.,다음에 나오는 /bin/mysql을 건너뜁니다.。
◎ DBeaver가 Snap kit 라이브러리에서 다운로드한 버전인 경우,경로를 /run/으로 변환…,이로 인해 후속 실행이 실패합니다。그렇다면 다음과 같습니다,대신 공식 패키지 라이브러리에서 DBeaver를 설치하십시오。

5. 대상 데이터베이스를 마우스 오른쪽 버튼으로 클릭합니다.,"Tools" - "Execute Script"를 선택하여 데이터베이스를 복원합니다.。

6. 소스 SQL 파일을 선택합니다.,복원하려면 시작을 누르십시오.。

 

《참고문헌》

코멘트를 남겨주세요

유의하시기 바랍니다: 덧글 검토가 활성화되고 귀하의 코멘트를 지연시킬 수있다. 댓글을 다시 제출하실 필요는 없습니다.