0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【MySQL】さくらVPSに構築したMySQLデータベーススキーマをCloud SQLに移管する

Last updated at Posted at 2020-05-17

概要

さくらVPSで動くMySQLのデータをCloudSQLに移管した時のメモです。

手順

移管元サーバーでの作業

バックアップ

公式ドキュメントを参考に進めました。

まず、移管元のデータが存在するサーバーにSSHログインし、バックアップファイルを生成します。

$ mysqldump -u[DBユーザー名] -p[DBパスワード] -B [DBスキーマ名] --skip-triggers --set-gtid-purged=OFF --default-character-set=utf8 > ~/backup/mysql_dump_gcp.sql

バックアップデータをローカルに落とす

データ量がそれほど多くなかったので、scpコマンドを使って、ローカルにバックアップファイルを落としてきました。

$  scp -P [サーバーのSSHポート番号] [sshのユーザー名]@[移管元サーバーのIPアドレス]:backup/mysql_dump_gcp.sql ~/

GCP内での作業

Cloud Storage

CloudSQLにバックアップファイルを流し込む際には、Cloud Storageにアップロードしたバックアップファイルを使用して、データをインポートする手順になります。

バケットを作成

バックアップファイルを保存しておくバケットバケットを作成します。
サイドバーから、「Storage」→「ブラウザ」を選択。
20190124141135.png

作成画面には色々ありますが、一時的にファイルを乗せるだけなのでバケット名だけわかりやすいものを記入し、あとはスルーでOKです。
「作成」ボタンを押して、バケットを作成。
20190124141302.png

ファイルをアップロード

バケットを作成したら、自動的に作成されたバケット内の操作画面に飛びます。
左上の「ファイルをアップロード」をクリックし、先ほどローカルに落としたmysql_dump_gcp.sqlをアップロードします。
20190124141836.png

Cloud SQL

インスタンスを作成

サイドバーから、SQLを選択し、「インスタンスの作成」ボタンをクリックします。
20190124142535.png

インスタンスの各種設定を定義し、「作成」ボタンをクリックすると、インスタンスが作成されます。

データインポート

作成されたインスタンスを選択すると、インスタンスの操作画面に移動します。
上部の「インポート」をクリック。
20190124143102.png

遷移した画面で、先ほどCloud Storageにアップロードしたバックアップファイルを使用します。
20190124143257.png

この画面では下記内容を入力。

  • Cloud Storageファイル: 「参照」から、Cloud Storage内にあるバックアップファイルを選択
  • インポートの形式: SQL
  • データベース: 選択なし(バックアップファイルにデータベーススキーマ作成の命令が入っているので、今回は選択なしでOK)

「インポート」をクリックすると、データが取り込まれます。

MySQLユーザーの作成

インポートが終わったら、データベースにアクセスできるユーザーを作成します。
インスタンスの詳細画面から、「ユーザー」を選択。
20190124145615.png

任意のアカウント名とパスワードを指定し、ユーザーを作成します。

データの確認

データの移管が完了したので、データが正常に移管されているかを確認します。

Cloud SDKの認証設定

Cloud SQL Proxyを使ってCloud SQLに接続するときに、GCPへの認証情報が必要になります。
ここでは、そのための認証設定を行います。

CLIを使用して対象のプロジェクトを持つユーザーでログインします。

$ gcloud auth login

次に、プロジェクト設定を行います。
作成したCloudSQLが乗っているプロジェクトを、gcloudコマンドで繋ぐデフォルトプロジェクトとしてセット。

$ gcloud config set project [プロジェクトID]

これで認証設定が完了しました。
Cloud SQL Proxyを使用するときに、ここで設定したCloud SDKの認証設定が参照されます。

Cloud SQL Proxyを立ち上げる

ローカル環境から、Cloud SQLに接続してデータを確認します。
その際に、GCPでは直接Cloud SQLのホストを指定して接続するのではなく、Cloud SQL Proxyという仕組みを使います。

参考ページはこちら

ローカル環境でシェルを起動し、Cloud SQL Proxyを立ち上げます。

$ ./cloud_sql_proxy -instances=[コネクション名]=tcp:3306

ここでのコネクション名は、CloudSQLインスタンスの詳細画面から確認できます。
20190124145050.png

データベースに接続する

Cloud SQL Proxyが走ると、「コネクションが確立されたよ」というメッセージが出てきます。
もう一つシェルを立ち上げ、下記コマンドを入力。

$ mysql -u[ユーザー名] -p[パスワード] --host 127.0.0.1

ユーザー名とパスワードには、先ほどCloud SQLの画面で作成したユーザーの情報を入力します。
すると、Cloud SQLに作成したMySQLに入ることができます。
これでselect文などでデータの確認を行い、正常に移管できていれば完了です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?