CloudSQLへMySQLのデータをインポート(DBeaver)

はじめに

MySQLのDumpデータをGCSに置いてCloud SQLにインポートします。

DBeaverがあればGUIベースで完結できます。

事前準備

  • DBeaverでMySQLに接続できるようにしておく
  • CloudSQL(MySQL)のインスタンスを作っておく(テーブルは作らなくてOK)
  • dumpを置くためのGCSバケットを作成

Dump取得

DBeaverからdumpを取得します。

GUIベースで説明してますが、コマンドでもイケると思う。

# 全テーブル
mysqldump --single-transaction --routines --add-drop-table --extended-insert -u <ユーザ名> --host=<ホスト> --port=3306 <DB名>

# テーブル指定 スペース区切りでテーブルを指定する
mysqldump --single-transaction --add-drop-table --extended-insert -u <ユーザ名> --host=<ホスト> --port=3306 <DB名> <テーブル名> [<テーブル名> ...]

Dump databaseを選択

データベースを開いて、テーブルの一覧からどれでも良いのでテーブルを選択して右クリック

ツール ー> Dump databaseをクリック

テーブルを選択

必要に応じてテーブルにチェックして次へ

全部インポートしたい場合はAllで選択

出力の指定

Execution Method:Online backup in single transaction を選択

 ※デフォルトのNomal(no lock)だと権限の問題かエラーとなる。

Settings:Disable keysのチェックを外す

 ※チェックがついているとPrimary Keyなどの情報がdumpから落ちてしまう。

開始

しばし待つ

バケットにアップロード

Cloud SQLへインポート

  1. インポートしたいインスタンスのページを表示
  2. ページ上部のインポートをクリック

  3. インポートしたdumpファイルを選択

  4. インポートするデータベースを選択

  5. インポートボタンクリック 開始