server-memo.net

MariaDB コマンドメモ

   

MariaDBの自分用コマンドメモです。
普段あまりDBは使用しないのですが、たまに使う場合毎度毎度調べているのでまとめてみました。

初期設定

「MariaDB」をインストールした後直ぐに実施することで、下記の設定を行うことが出来ます。

  • MariaDBのrootにパスワード設定
  • 匿名ユーザ(anonymous)の削除
  • リモートからrootユーザ接続禁止
  • テスト用データベースの削除
# mysql_secure_installation

詳しい解説は下記ページを参照してください。

http://www.server-memo.net/server-setting/mariadb/centos7_install.html

ログイン

ユーザを指定してログインする場合には「-u ユーザ」を付けます。

「-p」オプションを指定することでパスワードの入力を行うことが出来ます。

mysql -u ユーザ名 -p

MariaDBの「root」ユーザでログインする場合の例です。

$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 130624
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

ポート番号指定

デフォルトのポート番号以外を使用している場合は「-P」(Pは大文字)オプションを使用することで、ポート番号を指定することが出来ます。

mysql -u ユーザ名 -p -P ポート番号

データベースを指定してログイン

使用したいデータベースを指定してログインする場合は、ログインする際にデータベースもあわせて指定します。

mysql -u ユーザ名 -p データベース名

「testdb」というデータベースを指定したい場合は下記のように実行します。

$ mysql -u root -p testdb
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 130675
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [testdb]>

ログアウト

ログアウトする場合は「exit」または「quit」と入力します。

exit または quit

「exit」と「quit」どちらを使っても良いです。

MariaDB [testdb]> exit
Bye
$
MariaDB [(none)]> quit
Bye
$

データベース作成

データベースを新しく作成する場合は「CREATE DATABASE」コマンドを使用します。

CREATE DATABASE データベース名;

「testdb」というデータベースを作成してみます。

MariaDB [(none)]> CREATE DATABASE testdb;
Query OK, 1 row affected (0.00 sec)

データベースの確認

作成済みのデータベース一覧を表示する場合は「SHOW DATABASES」コマンドを使用します。

SHOW DATABASES;

「SHOW DATABASES」コマンドを実行すると、下記のようにデータベースの一覧が表示されます。

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| testdb             |
+--------------------+
4 rows in set (0.00 sec)

データベースを選択(データベースへ接続)

使用するデータベースを選択する場合は「USE」コマンドを使用します。

USE データベース名;

「testdb」を使えるように選択してみます。

MariaDB [(none)]> USE testdb;
Database changed
MariaDB [testdb]>

データベースを指定する前は「MariaDB [(none)]」と表示されていますが、選択後は「MariaDB [testdb]」[none]と表示されていた部分が[testdb]となり現在選択されているデータベースが確認できます。

テーブルの作成

テーブルを作成したいデータベースを指定した後に「CREATE TABLE」コマンドでテーブルを作成することが出来ます。

カラムを複数指定したい場合は「,」で区切ります。

CREATE TABLE テーブル名(
  カラム名1 データ型,
  カラム名2 データ型
);

「userinfo」というテーブルを作成して、「id」「username」「password」「age」というカラムを作成します。

MariaDB [testdb]> CREATE TABLE userinfo(
    ->   id int,
    ->   username varchar(255),
    ->   password char(20),
    ->   age int
    -> );
Query OK, 0 rows affected (0.03 sec)

テーブル確認

作成済みのテーブルを確認する場合は「SHOW TABLES」コマンドを使用します。

SHOW TABLES;

「SHOW TABLES」コマンドでテーブルを実行すると「userinfo」というテーブルがあることが出来ました。

MariaDB [testdb]> SHOW TABLES;
+------------------+
| Tables_in_testdb |
+------------------+
| userinfo         |
+------------------+
1 row in set (0.00 sec)

テーブルの構造を確認

テーブルの構造を確認する場合は「DESC」コマンドを使用します。

DESC テーブル名;

下記は「userinfo」というテーブルの構造を表示させた結果となります。

MariaDB [testdb]> DESC userinfo;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| id       | int(11)      | YES  |     | NULL    |       |
| username | varchar(255) | YES  |     | NULL    |       |
| password | char(20)     | YES  |     | NULL    |       |
| age      | int(11)      | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

データ登録

作成したテーブルにデータを登録するには「INSERT」コマンドを使用します。

INSERT INTO テーブル名 VALUES(データ1,データ2,....);

テーブルに設定されているカラム順にデータを登録していき、文字列は「'」(シングルクォーテーション)でくくる必要があります。

MariaDB [testdb]> INSERT INTO userinfo VALUES(0002,'testuser2','password',21);
Query OK, 1 row affected (0.00 sec)

データの確認

登録されているデータを参照するには「SELECT」コマンドを使用してます。

SELECT カラム名 FROM テーブル名;

全てのカラムを表示したい場合はカラム名に「*」を指定します。

MariaDB [testdb]> SELECT * FROM userinfo;
+------+-----------+----------+------+
| id   | username  | password | age  |
+------+-----------+----------+------+
|    1 | testuser1 | password |   20 |
|    2 | testuser2 | password |   21 |
+------+-----------+----------+------+
2 rows in set (0.00 sec)

カラム名を指定すると、確認したいものだけを表示することが出来ます。

MariaDB [testdb]> SELECT username,age FROM userinfo;
+-----------+------+
| username  | age  |
+-----------+------+
| testuser1 |   20 |
| testuser2 |   21 |
+-----------+------+
2 rows in set (0.00 sec)

ユーザ作成

データベースを管理するユーザは「CREATE USER」コマンドで作成します。

CREATE USER 'ユーザ名'@'ホスト' IDENTIFIED BY 'パスワード';

「tamohiko」というユーザを作成してみます。

MariaDB [(none)]> CREATE USER 'tamohiko'@'localhost' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.02 sec)

権限設定

作成したユーザへ権限を設定する場合は「GRANT」コマンドを使用します。

GRANT 権限 PRIVILEGES ON データベース名.テーブル名 TO 'ユーザ名'@'ホスト'

「tamohiko」ユーザに「testdb」というデータベースのすべてテーブルに対して、すべての権限(ALL)を持たせてみます。

MariaDB [(none)]> GRANT ALL PRIVILEGES ON testdb.* TO 'tamohiko'@'localhost';
Query OK, 0 rows affected (0.00 sec)

FLUSH PRIVILEGESコマンドについて

「FLUSH PRIVILEGES」コマンドによる権限の反映は「INSERT」で直接テーブルを更新した際に必要となります。

https://dev.mysql.com/doc/refman/5.6/ja/adding-users.html

ユーザの一覧表示

SELECT host,user FROM mysql.user;
MariaDB [(none)]> SELECT host,user FROM mysql.user;
+-----------+----------+
| host      | user     |
+-----------+----------+
| 127.0.0.1 | root     |
| ::1       | root     |
| localhost | ntAdmin  |
| localhost | root     |
| localhost | tamohiko |
+-----------+----------+
5 rows in set (0.00 sec)

パスワードの変更

自分のパスワードを変更する方法と、別ユーザのパスワードを変更する方法です。

自分のパスワードを変更

「SET PASSWORD」コマンドでパスワードを変更することが出来ます。

SET PASSWORD=PASSWORD('パスワード');

自分のパスワードを「passw0rd」に変更してみます。

MariaDB [(none)]> SET PASSWORD=PASSWORD('passw0rd');
Query OK, 0 rows affected (0.07 sec)

別ユーザのパスワードを変更

別ユーザのパスワードを変更する方法です。(rootユーザで実施する必要があります。)

SET PASSWORD FOR 'ユーザ名'@'ホスト名' = PASSWORD('パスワード');
MariaDB [(none)]> SET PASSWORD FOR 'tamohiko'@'localhost' = PASSWORD('password');
Query OK, 0 rows affected (0.02 sec)

ユーザの削除

ユーザの削除は「DROP USER」コマンドを使用します。

DROP USER 'ユーザ名'@'ホスト名';

 - MariaDB