気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

MySQL DBとUser作成して、テーブル作成できる状態にする

ローカルのMySQLで、SQL実行環境を作る際の一連の流れを以下に記載します。

前提条件

OS: macOS 10
SQLは、ターミナル上のコマンドラインで実行

MySQLのインストールが済んでいない方は以下を参考にしてみて下さい。

HomebrewでMySQLをインストールする

Windows版をインストールしたい方こちらから、インストーラーをダウンロードして、実行して下さい。

新しくデータベースを作成する

mysql> create database db_name;
Query OK, 1 row affected (0.08 sec)

新しくユーザーを作成する

mysql> create user user@localhost IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.12 sec)

ユーザー一覧を表示する

mysql> SELECT host, user FROM mysql.user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| localhost | mysql.user    |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+

作成したユーザーに作成したデータベースの操作権限を付与する

Gmysql> grant all privileges on db_name.* TO user@localhost;
Query OK, 0 rows affected (0.10 sec)

設定権限を確認する

mysql> show grants for user_name@localhost;
+------------------------------------------------------------+
| Grants for user_name@localhost                                 |
+------------------------------------------------------------+
| GRANT USAGE ON *.* TO `user_name`@`localhost`                  |
| GRANT ALL PRIVILEGES ON `db_name`.* TO `user_name`@`localhost` |
+------------------------------------------------------------+

もし間違った場合は、以下コマンドで権限変更できます。

mysql> revoke all privileges on studydb.* from user_name@localhost;
+------------------------------------------------------------+
| Grants for user_name@localhost                                 |
+------------------------------------------------------------+
| GRANT USAGE ON *.* TO `user_name`@`localhost`                  |
+------------------------------------------------------------+

「all privileges」の箇所に削除したい権限を指定。

権限はこちらを参照

設定を反映する

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

新しいデータベースに切り替える

mysql> use db_name;

新しいテーブルを作成する

mysql> create table dbname.product (name varchar(30), price int(5));
Query OK, 0 rows affected (0.02 sec)

mysql> show tables;
+-------------------+
| Tables_in_db_name |
+-------------------+
| product       |
+-------------------+
1 row in set (0.00 sec)

DB作成、ユーザー作成・権限付与、テーブル作成まで、できました。 お疲れ様でした。