メインコンテンツに移動

WorkBenchをWindowsにインストールしてSQLサーバーに接続します。GUIによるデータベースの統合ビジュアルツールでコマンド入力が苦手な方にお勧めです。公式サイトからダウンロードしてインストールします。
https://www.mysql.com/jp/products/workbench/


インストール後に接続するわけですが一筋縄ではいきません。まずは接続に必要なポート番号を開放します。ここではクラウドに設置したLinuxにその設定をおこないます。
通常はポート番号に3306を使用していると思いますのでファイアウォールにそのポート番号が受信できる設定をします。
状態を確認して、その記述が無ければ追加します。再起動も忘れずにします。

firewall-cmd --list-all --zone=public
firewall-cmd --add-port=3306/tcp --zone=public --permanent
systemctl restart firewalld

また、クラウドサービス自体にも受信できるように記述をします。

さらに、SQLサーバーに外部から接続を許可するユーザーの追加もします。
SQLサーバーにログインしてユーザー情報を確認すると、すべてのユーザーがlocalhostでデータベースが扱える状態でした。

mysql -u root -p
select user, host from mysql.user;

mysql> select user, host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| mamushi | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)

あとから、既存のデータベースに接続するので一覧表示します。

show databases;

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| drupaldb |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.02 sec)

localhost以外に外部から接続できるユーザーを追加してパスワードを付与します。「%」をユーザーの後ろに付けるとどこからでも接続が出来るというもので、ここをIPアドレスやドメイン名にして制限をかけることも可能です。作成したユーザーに既存のデータベースを使用できるすべての権限も与えます。

create user 'mamushi'@'%' IDENTIFIED BY 'Testpass123$';
grant all privileges on drupaldb.* to 'mamushi'@'%';

それではWorkBenchを起動して接続をしてみましょう。「MySQL Connections」の右にあるプラスボタンを押すと接続設定の画面に進みます。

新しい接続設定画面ではホストやユーザーを入力します。パスワードは「store in vault」をクリックして入力すると次回からパスワード入力なしで接続できるようです。

テスト接続をすると成功して、SSLが有効になっているみたいです。

ログイン後はスキーマ(Schemas)をクリックすると、先ほど許可したものだけが表示されています。

「administration」をクリックして戻り全データをエクスポートします。AWSのRDSに接続することもできました。

クラウドサービスのターミナルでは下記のコマンドを使用します。このコマンド入力をしたディレクトリにファイルは作成されます。

mysqldump -u root -p drupaldb > export.sql

AWSではデータベースを同じインスタンスにインストールせず別途RDSを利用しているのでホスト名の記述が必要になります。

mysqldump -h database.xxxxxxxx.rds.amazonaws.com -u admin -p testdb > /tmp/export.sql

Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events.

しかし、エラーが発生しました。

mysqldump -h database.xxxxxxxx.rds.amazonaws.com -u admin -p testdb --set-gtid-purged=OFF > /tmp/export.sql

オプションを追加するとうまくいきました。AWSのインスタンスではこのオプションが必要でしたが、それ以外だとこのエラーは発生せずエクスポートできました。

これをTera TermのSSH SCP機能を利用してダウンロードすればバックアップの完了です。