MySQL 5.7.11でデータベース、ユーザ、テーブルを作成
最終更新日:2020/11/23 | 公開日:2016/03/12
目次
概要
MySQL 5.7.11がインストールされた環境で、データベースを作成します。 作成したデータベースを管理するために、専用のユーザを作成し、データベースに対する全ての権限を付与します。 その後、動作確認のため、作成したユーザでテーブルを作成し、データを挿入します。 なお、データベース管理者ユーザと開発者ユーザは分けた方が良いですが、今回は手順確認が目的だったので、 その点は意識していません。
構成
サーバ構成
OSバージョン
CentOS 7.2.1511 x86_64
ソフトウェア・パッケージ一覧
- mysql-community-common-5.7.11-1.el7.x86_64.rpm
- mysql-community-libs-5.7.11-1.el7.x86_64.rpm
- mysql-community-client-5.7.11-1.el7.x86_64.rpm
- mysql-community-server-5.7.11-1.el7.x86_64.rpm
環境構築
設定
MySQLに管理者ユーザ(root)でログイン
MySQLにビルドインアカウントの管理者ユーザ(root)でログインします。
# mysql -u root -p
Enter password: ←パスワードを入力
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.11 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
データベースの作成
データベース test_db を作成します。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> create database test_db;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test_db | ←test_dbが作成された
+--------------------+
5 rows in set (0.00 sec)
mysql>
ユーザの作成
ユーザ user01 を作成します。 パスワードは Password-123 に設定します。
mysql> select host, user from mysql.user;
+-----------+-----------+
| host | user |
+-----------+-----------+
| localhost | mysql.sys |
| localhost | root |
+-----------+-----------+
2 rows in set (0.00 sec)
mysql> create user 'user01'@'localhost' identified by 'Password-123';
Query OK, 0 rows affected (0.00 sec)
mysql> select host, user from mysql.user;
+-----------+-----------+
| host | user |
+-----------+-----------+
| localhost | mysql.sys |
| localhost | root |
| localhost | user01 | ←user01が作成された
+-----------+-----------+
3 rows in set (0.01 sec)
mysql>
作成したユーザへ権限の付与
作成した user01 に対して test_db の全てのオブジェクトに対する全権限を付与します。 ここでrootユーザとしての操作は終了なので、ログアウトします。
mysql> grant all privileges on test_db.* to 'user01'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye #
MySQLに一般ユーザでログイン
作成した user01 でMySQLにログインします。その際、接続先データベースとして test_db を指定します。
# mysql -u user01 -p test_db
Enter password: ←パスワードを入力
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.11 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
テーブルの作成
テーブル addressbook を作成します。 このテーブルは4つのカラムを持ち、1つめのカラムにプライマリキーを設定します。
mysql> show tables; Empty set (0.00 sec) ←まだテーブルは存在しない mysql> create table addressbook ( -> id int(3), -> name varchar(20), -> address varchar(20), -> telephone varchar(13), -> primary key (id) -> ); Query OK, 0 rows affected (0.22 sec) mysql> show tables; +-------------------+ | Tables_in_test_db | +-------------------+ | addressbook | ←addressbookが作成された +-------------------+ 1 row in set (0.00 sec) mysql> desc addressbook; +-----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+-----+---------+-------+ | id | int(3) | NO | PRI | NULL | | | name | varchar(20) | YES | | NULL | | | address | varchar(20) | YES | | NULL | | | telephone | varchar(13) | YES | | NULL | | +-----------+-------------+------+-----+---------+-------+ 4 rows in set (0.01 sec) mysql>
テーブルにデータの挿入
テーブル addressbook にデータを2行挿入します。 1行目は英数字のみで、2行目は日本語を含めたデータを挿入し、データベースが日本語にも対応していることを確認します。
mysql> insert into addressbook (id, name, address, telephone) values (1, 'Taro Yamada', 'Tokyo', '03-1234-5678'); Query OK, 1 row affected (0.05 sec) mysql> select * from addressbook; +----+-------------+---------+--------------+ | id | name | address | telephone | +----+-------------+---------+--------------+ | 1 | Taro Yamada | Tokyo | 03-1234-5678 | +----+-------------+---------+--------------+ 1 row in set (0.00 sec) mysql> insert into addressbook (id, name, address, telephone) values (2, '田中 花子', '東京都中央区日本橋', '050-9876-5432'); Query OK, 1 row affected (0.00 sec) mysql> select * from addressbook; +----+---------------+-----------------------------+---------------+ | id | name | address | telephone | +----+---------------+-----------------------------+---------------+ | 1 | Taro Yamada | Tokyo | 03-1234-5678 | | 2 | 田中 花子 | 東京都中央区日本橋 | 050-9876-5432 | +----+---------------+-----------------------------+---------------+ 2 rows in set (0.00 sec) mysql> exit Bye #