OSS Fan ~OSSでLinuxサーバ構築~

このエントリーをはてなブックマークに追加

MySQL 5.7.11でデータベース、ユーザ、テーブルを作成

カテゴリ:OSSセットアップ | ソフトウェア:MySQL | タグ:
最終更新日: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
#