最近、管理しているWordPressをSynology NASに移行し始めました,この作品をデータベースにインポートする,さすがに問題点が多かったです,一つ一つ勉強して解くのに、とても時間がかかりました,プロセスを文書化する,必要な人と共有してください。
【環境】
- Synology の MariaDB、phpMyAdmin がビルドされました。
- .sqlファイルはホスティングWebサイトからダウンロードされています,サイズは約250MB。
- DBeaver がローカル コンピューターにインストールされている,現地生産体制はマンジャロ。
【主なステップ】
- SSHは、 非ローカルホスト 接続されているアカウント。これは、アカウントのデフォルト設定では、localhost(つまり、NAS自体)からのみ接続できるためです。。
- MariaDBのmax_allowed_packet制限を増やす。デフォルトでは、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
DBeaver を使用した SQL データベースの復元
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キットライブラリからダウンロードしたバージョンの場合,パスを /run/ に変換する…,これにより、後続の実行が失敗します。もしそうなら、これが事実です,代わりに、公式パッケージライブラリからDBeaverをインストールしてください。
5. 宛先データベースを右クリックします,「ツール」-「スクリプトの実行」を選択してデータベースを復元します。
6. ソース SQL ファイルを選択します,[開始]を押して復元します。
《参考文献》
- ホスト ” このMariadBへの接続は許可されていません | Synology コミュニティ
- MySQL で All Privileges ON を付与してリモート権限を割り当てる _grant All Privileges On *.* に-CSDNブログ
- ブラザーバードのプライベートディッシュ – チャプターIX、vimプログラムエディタ
- Synology NASでMariaDB設定をカスタマイズすることは可能ですか? – Synology ナレッジセンター
- DBeaver のドキュメント