MySQL WorkBenchをインストールして使い方に慣れる

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機能を利用してダウンロードすればバックアップの完了です。

教育

Posted by admin