【MySQL】よく使うコマンド一覧:サンプル多数あり


ここではMySQLで、よく使うコマンド一覧を紹介しています。

MySQLログイン前の操作

MySQLの起動確認

MySQLが起動中か確認するには、mysqladmin pingコマンドを使います。

mysqladmin ping [-u ユーザ名][-pパスワード]

実際に実行した結果、起動している場合は「mysqld is alive」とメッセージが返ってきます。

C:\wk>mysqladmin ping -u root -p
Enter password: ********
mysqld is alive

MySQLのバージョン確認

バージョンを確認するには「mysql –version」を使います。

mysql --version

実際に実行すると次のように結果を返します。

C:\wk>mysql --version
mysql  Ver 14.14 Distrib 5.7.19, for Win64 (x86_64)

MySQLにログインした後にバージョンを確認するには、「SELECT version();」を実行します。

mysql> SELECT version();
+------------+
| version()  |
+------------+
| 5.7.19-log |
+------------+
1 row in set (0.01 sec)

他にも「status」コマンドを実行することでバージョン情報を確認することが出来ます。

status

MySQLの起動・停止・再起動

MySQLを起動、停止、再起動する方法は次の通りです。

--起動
mysql.server start

--停止
mysql.server stop

--再起動
mysql.server restart

MySQLへのログイン

MySQLにログインするときは-uオプションでユーザの指定、-pでパスワード指定、データベースの指定をすることが出来ます。

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

例えば、パスワード設定されているrootユーザでログインするときは次のようにコマンドを入力してログインします。

-pまで入力してEnterキーを押すと「Enter password: 」という文字が表示されパスワードの入力を促されます。パスワードを入力してEnterを押すとログインすることが出来ます。

C:\wk>mysql -u root -p
Enter password: ********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 55
Server version: 5.7.19-log MySQL Community Server (GPL)

Copyright (c) 2000, 2017, 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からログアウト

MySQLからログアウトするには「exit」または「quit」を使います。

exit
または
quit

実際に試すと次のように結果を返します。

mysql> exit
Bye

MySQLログイン後の操作

ユーザ一覧の確認

ユーザ一覧は「MYSQL.USER」で確認することが出来ます。

mysql> SELECT user,host FROM MYSQL.USER;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
| user1         | localhost |
+---------------+-----------+
4 rows in set (0.03 sec)

ユーザの確認

現在ログインしているユーザは、「SELECT USER();」で確認することが出来ます。実際に試すと次のように結果を返します。

mysql> SELECT USER();
+-----------------+
| USER()          |
+-----------------+
| user@localhost  |
+-----------------+
1 row in set (0.01 sec)

ユーザの作成

ユーザを作成するときは「CREATE USER」を使います。

CREATE USER ユーザー名
IDENTIFIED BY パスワード
;

実際に作成すると次のようにメッセージが表示されます。

mysql> CREATE USER test_user
    -> IDENTIFIED BY 'password'
    -> ;
Query OK, 0 rows affected (0.05 sec)

データベース一覧の確認

データベースの一覧は「show databases;」で確認することが出来ます。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |
| db2                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.06 sec)

データベースの指定・選択・接続

データベースに接続するには「USE」を使います。

USE データベース名

例えばdb1データベースを選択し接続する場合は次のようにコマンドを実行します。

mysql> USE db1
Database changed

現在のデータベースを確認

現在接続しているデータベースは、「SELECT database();」で確認することが出来ます。

mysql> SELECT database();
+------------+
| database() |
+------------+
| db1        |
+------------+
1 row in set (0.00 sec)

テーブル一覧の確認

テーブルの一覧は「show tables;」で確認することが出来ます。

mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| tab           |
| tab1          |
| tab2          |
| usr           |
+---------------+
4 rows in set (0.01 sec)

テーブルの属性を確認

テーブルの属性(カラムやキー項目)を確認するには、「DESC」コマンドを使います。

DESC テーブル名;

DESCコマンドを実行すると次のようにカラム名、データ型、NULL値の許容、キー項目、デフォルト値などを確認することが出来ます。

mysql> DESC tab1;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| emp_id   | varchar(10)  | YES  | UNI | NULL    |       |
| emp_name | varchar(100) | YES  |     | NULL    |       |
| dept     | varchar(10)  | YES  |     | NULL    |       |
| age      | int(11)      | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

DESCと同じように「SHOW CREATE TABLE テーブル名;」とすることで、テーブル作成時のDDL文を表示し、テーブルの属性を確認することもできます。

mysql> show CREATE TABLE tab1;
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                                              |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tab1  | CREATE TABLE `tab1` (
  `emp_id` varchar(10) DEFAULT NULL,
  `emp_name` varchar(100) DEFAULT NULL,
  `dept` varchar(10) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  UNIQUE KEY `emp_id` (`emp_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

テーブルの中身を確認

テーブルの中身はSELECT文で確認することが出来ます。

SELECT 列名 FROM テーブル名;

次の例ではtab1テーブルからemp_id,emp_name列の値を取得し表示しています。

mysql> SELECT emp_id,emp_name FROM tab1;
+--------+----------+
| emp_id | emp_name |
+--------+----------+
| 00001  | Suzuki   |
| 00002  | Tanaka   |
| 00003  | Kizaki   |
| 00004  | Tanaka   |
| 00005  | Kizaki   |
| 00006  | Nakata   |
+--------+----------+
6 rows in set (0.00 sec)

全ての列の値を表示させたい場合は「*」を指定することもできます。

mysql> SELECT * FROM tab1;
+--------+----------+-------+------+
| emp_id | emp_name | dept  | age  |
+--------+----------+-------+------+
| 00001  | Suzuki   | D0001 |   28 |
| 00002  | Tanaka   | D0002 |   25 |
| 00003  | Kizaki   | D0002 |   35 |
| 00004  | Tanaka   | D0003 |   45 |
| 00005  | Kizaki   | D0003 |   55 |
| 00006  | Nakata   | D0003 |   35 |
+--------+----------+-------+------+
6 rows in set (0.00 sec)

その他

パラメータ・システム変数の確認

パラメータの一覧を確認するには「SHOW VARIABLES;」を使います。

SHOW VARIABLES;

”SHOW VALIABLES”だけだと非常にたくさんのパラメータが返ってきます。

そんなときはLIKE演算子を使います。

次のコマンドでは、「memory」という文字を含むパラメータの一覧を取得しています。

mysql> SHOW VARIABLES LIKE '%memory%';
+---------------------------------------+-------+
| Variable_name                         | Value |
+---------------------------------------+-------+
| performance_schema_max_memory_classes | 320   |
| shared_memory                         | OFF   |
| shared_memory_base_name               | MYSQL |
+---------------------------------------+-------+
3 rows in set, 1 warning (0.00 sec)

起動中のプロセスの確認

プロセスは「SHOW PROCESSLIST;」で確認することが出来ます。

[FULL]を指定することで、実行中のSQL文を全文表示します。FULLを指定しない場合は100文字までが表示されます。

SHOW [FULL] PROCESSLIST;

プロセスのキル/KILL

プロセスを強制終了/KILL/キルするには、KILLを使います。

KILL スレッドID;

SQL履歴(クエリログ)の確認

クエリログの設定を行うことで、実行されたSQLのログをクエリログというファイルに書き込むことが出来ます。

クエリログの場所は「general_log_file」で指定されています。

mysql>  SHOW VARIABLES LIKE '%general_log%';
+------------------+---------------------+
| Variable_name    | Value               |
+------------------+---------------------+
| general_log      | OFF                 |
| general_log_file | DESKTOP-XXXXXXX.log |
+------------------+---------------------+
2 rows in set, 1 warning (0.00 sec)

同時接続数の確認

Threads_connectedを参照することで現在の同時接続数を確認することが出来ます。

mysql> show global status like 'Threads_connected';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_connected | 1     |
+-------------------+-------+
1 row in set (0.01 sec)

最大接続数の確認

max_connectionsを参照することで現在の同時接続数を確認することが出来ます。

mysql> show global variables like 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+
1 row in set, 1 warning (0.06 sec)

文字コードの確認

文字コードを確認するには、SHOW VARIABLESコマンドで文字コード関連のパラメータを確認します。

SHOW VARIABLES LIKE 'character_%';
項目 内容
character_set_client クライアントが送信するデータの文字コード
character_set_connection  
character_set_database サーバのデフォルトデータベースの文字コード
character_set_filesystem  
character_set_results サーバがクライアントに返信するデータの文字コード
character_set_server  
character_set_system  
character_sets_dir