ローカルのMySQLで、SQL実行環境を作る際の一連の流れを以下に記載します。
前提条件
OS: macOS 10
SQLは、ターミナル上のコマンドラインで実行
MySQLのインストールが済んでいない方は以下を参考にしてみて下さい。
HomebrewでMySQLをインストールする
Windows版をインストールしたい方こちらから、インストーラーをダウンロードして、実行して下さい。
新しくデータベースを作成する
mysql> mysql -u root -pmypass;
mysql> create database db_name;
Query OK, 1 row affected (0.08 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| db_name |
| mysql |
| performance_schema |
| sys |
+--------------------+
新しくユーザーを作成する
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)
mysql> desc product;
+--------------------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+------------------+------+-----+---------+-------+
| name | varchar(3) | YES | | NULL | |
| price | smallint(5) | YES | | NULL | |
+--------------------------+------------------+------+-----+---------+-------+
DB作成、ユーザー作成・権限付与、テーブル作成まで、できました。
お疲れ様でした。