要約
- MySQL WorkBenchの使い方と、MySQLデータベースの作成方法について共有する。
- SQLiteとはデータベースの概念が少しだけ違うので注意が必要
- WorkBenchでは、GUIデータベースの作成・ユーザーの作成と権限付与・データ閲覧と基本的なことはすべてできる。
- でもコマンド打った方が楽。
背景
- MySQLとSQLiteの違いがいまいちよく分からなかった。
- 単純にWorkBenchを使ってみたかった。
目的
- MySQL WorkBenchを用いて、手元のMySQLサーバーにデータベースを作成する。
- 非rootユーザーを作成して権限を付与し、そのユーザーでデータベースに接続する。
結論
- コマンドの方が100倍楽(WorkBench使いづれぇ~)
詳細
交通整理
- 一部の用語・考え方をSQLiteと混同してしまうので、最初に用語の交通整理をする。
- MySQLにおける基本構造は以下のようになっている(と、理解している)
- Connections:データベースを管理するサーバー。このサーバーの中に複数のデータベースを配置することができ、接続することでそれぞれのデータベースへアクセスする。これをデータベースと説明されることもあるため、SQLite上がりの人は混同する。(俺はした)
- Schema:サーバー内に設置される、データベース。SQLiteでいうところの.dbファイル。これを作らないと、データを格納したり取り出したりできない。
- Tables:Schema(データベース)内に作成されるテーブル。これはSQLiteと同じ。
- Schema:サーバー内に設置される、データベース。SQLiteでいうところの.dbファイル。これを作らないと、データを格納したり取り出したりできない。
- Connections:データベースを管理するサーバー。このサーバーの中に複数のデータベースを配置することができ、接続することでそれぞれのデータベースへアクセスする。これをデータベースと説明されることもあるため、SQLite上がりの人は混同する。(俺はした)
参考情報
- ソースは公式含め複数あるが、これが最も腹落ちした。正しいかどうかはノーコメント
1. WorkBenchを立ち上げる
- Local Instance MySQL80に接続する。
- この時点でConnectionsを新しく作成する記事も散見されるが、今回はroot以外のユーザーを作成したいので、まずrootのConnectionsを利用する。
- これはそもそも何か:どんなユーザーで、どのサーバーの、どのデータベースにアクセスするかのセッションを記憶しておくものと理解した。
2. データベースを作成する。
- サーバーに接続できたら、上部メニューからCreate New Schemaを選択
- 任意の名前を選択してApply
- 左側のメニュー一覧にデータベースが作成されているのを確認できる。
参考情報
3. 新規ユーザーの作成
- 一般的に、rootユーザーは強い操作権限を有しているため、データベースへのアクセスは必要な権限のみを有したユーザーでアクセスすることが望ましい。
- メニューから、「Use and Previrages」を選択する。
- Add Accountをクリックして新しいユーザーの作成画面に入り、ユーザー名とパスワードを設定して「Apply」をクリックする。(右・下部のウィンドウが邪魔でメニューがうまく見えないので、サイズを適宜調整する。)
- このとき、パスワードに@を指定しないこと!
4. ユーザーに権限を付与する
- そのまま「Schema Priviledges」タブに移り、作成したデータベースの権限を付与する。
- Add Entryをクリックすると、権限を付与できるスキーマを選択できる。ここで、作成したデータベースを選択する。
- Applyをクリックすると、基本的な操作権限が自動的に付与される。
参考資料
6.接続確認
- 作成したユーザーでデータベースに接続するため、WorkBench上で新規のコネクションを作成する。
- サーバーに接続すると、先ほど作成したデータベースのみが表示されており、正しくデータベースの作成・ユーザーの作成・権限の付与が行われていることが分かる。
- テーブルを選択して右クリックし、「Select Rows ~~」をクリックすると、テーブル内部のデータにアクセスできる。