MySQL コマンドの一覧

MySQLのコマンドの一覧です。

確認した環境
・MySQL 5.7

目次

OS上のMySQLコマンド

MySQLにログインする前に実行するコマンドです。

説明 コマンド
mysqlのバージョンを確認する mysql --version
mysqlへ接続する mysql -u ユーザー名 -p
例:mysql -u root -p
pの後にパスワードを入力します。
mysqlが起動しているか確認する service mysqld status
mysqlを起動する service mysqld start
mysqlを停止する service mysqld stop
データベース単位でテーブルの定義とデータを出力する mysqldump -u ユーザ名 -p データベース名 > ファイル名
例:mysqldump -u root -p testphp > E:\Test1\test1.txt
コマンド入力後パスワードを聞かれます。
テーブル単位でテーブルの定義とデータを出力する mysqldump -u ユーザ名 -p データベース名 テーブル名 > ファイル名
例:mysqldump -u root -p testphp syain > E:\Test1\test1.txt
コマンド入力後パスワードを聞かれます。
上記取得したファイルを入力する mysql -u ユーザ名 -p データベース名 < ファイル名
mysql -u root -p testphp < E:\Test1\test1.txt
コマンド入力後パスワードを聞かれます。
コマンドはmysqldumpではなくmysqlです。

基本的なMySQLコマンド

MySQLにログイン後に実行するコマンドです。

説明 コマンド
データベースの一覧を表示する show databases;
データベースへ接続する use DB名;
接続しているデータベースを表示する select database();
テーブルの一覧を表示する show tables;
テーブルの詳細を表示する desc テーブル名;
DBのステータスを表示する status
ヘルプを表示する help
mysqlをログアウトする exit

ユーザー関連のコマンド

説明 コマンド
ユーザを作成する create user ユーザー名 [identified by 'パスワード']
例:create user testuser1 identified by 'abc123';
ユーザー名testuser1でパスワードabc123のユーザを作成
ユーザを確認する select host,user from mysql.user;
ユーザを作成する
(全ての権限を与える)
grant all privileges on *.* to ユーザー名
Identified by 'password' with grant option;
例:grant all privileges on *.* to testuser1
Identified by 'password' with grant option;
以下は、MySQLのGrant構文のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/grant.html
ユーザ権限を確認する show grants for ユーザー名;
例:show grants for testuser1;
パスワードを変更する set password for ユーザー名@"ホスト名"=password('変更後のパスワード');
例:set password for testuser1@"%"=password('pass');
ユーザー名testuser1のパスワードをpassに変更。%はホスト名を指す。
ユーザー名を変更する rename user 変更前のユーザー名 to 変更後のユーザー名
例:rename user testuser1 to testuser100;
ユーザー名testuser1をtestuser100に変更
ユーザを削除する drop user ユーザー名
例:drop user testuser100;

システム関連のコマンド

説明 コマンド
文字コードの設定を確認する(説明) show global variables like "chara%";
show session variables like "chara%";
show variables like "chara%";
タイムアウト関連の設定を表示する(説明) show global variables like "%timeout%";
show session variables like "%timeout%";
show variables like "%timeout%";
最大接続数を表示する(説明) show global variables like 'max_connections';
show session variables like 'max_connections';
show variables like 'max_connections';
スロークエリの設定を表示する(説明) show variables like 'slow%';
スロークエリとする秒数を表示する(説明) show variables like 'long_query_time';
起動してからの最大同時接続数を表示する(説明) show global status like 'Max_used_connections';
show session status like 'Max_used_connections';
show status like 'Max_used_connections';
スレッド情報を表示する(説明) show global status like 'Thread_%';
show session status like 'Thread_%';
show status like 'Thread_%';
使用できる文字コードを表示する(説明) show character set;
文字セットの照合順序を一覧表示する(説明) show collation;
実行中のスレッドを表示する(説明) show processlist;
スレッドを停止する(説明) kill 数値
ロック中のテーブルを表示する(説明) show open tables;

文字コードの設定を表示する

show global variables like "chara%";
show session variables like "chara%";
show variables like "chara%";
  • show variables は、MySQLのシステム変数の値を表示します。
  • 「chara%」の指定で、charaで始まる文字コードの設定を表示します。
    %はワイルドカード文字です。
  • globalを指定するとMySQL への新しい接続に使用される値を表示します。
  • sessionを指定すると現在の接続に有効な値を表示します。
  • global/sessionを指定しない場合、sessionになります。
MariaDB [testphp]> show global variables like "chara%";
+--------------------------+--------------------------------+
| Variable_name            | Value                          |
+--------------------------+--------------------------------+
| character_set_client     | utf8mb4                        |
| character_set_connection | utf8mb4                        |
| character_set_database   | utf8mb4                        |
| character_set_filesystem | binary                         |
| character_set_results    | utf8mb4                        |
| character_set_server     | utf8mb4                        |
| character_set_system     | utf8                           |
| character_sets_dir       | E:\xampp\mysql\share\charsets\ |
+--------------------------+--------------------------------+
8 rows in set (0.00 sec)

5行目は、クライアントが送信する文字コードです。
9行目は、サーバーからクライアントに送信する文字コードです。
10行目は、サーバーのデフォルトの文字コードです。

以下は、MySQLの「サーバーシステム変数」のリンクです。https://dev.mysql.com/doc/refman/5.6/ja/server-system-variables.html#sysvar_character_set_server

 

タイムアウト関連の設定を表示する

show global variables like "%timeout%";
show session variables like "%timeout%";
show variables like "%timeout%";
  • show variables は、MySQLのシステム変数の値を表示します。
  • 「%timeout%」の指定で、timeoutの文字があるタイムアウト関連の設定を表示します。
    %はワイルドカード文字です。
  • globalを指定するとMySQL への新しい接続に使用される値を表示します。
  • sessionを指定すると現在の接続に有効な値を表示します。
  • global/sessionを指定しない場合、sessionになります。
MariaDB [(none)]> show variables like "%timeout%";
+-------------------------------------+----------+
| Variable_name                       | Value    |
+-------------------------------------+----------+
| connect_timeout                     | 10       |
| deadlock_timeout_long               | 50000000 |
| deadlock_timeout_short              | 10000    |
| delayed_insert_timeout              | 300      |
| innodb_flush_log_at_timeout         | 1        |
| innodb_lock_wait_timeout            | 50       |
| innodb_print_lock_wait_timeout_info | OFF      |
| innodb_rollback_on_timeout          | OFF      |
| interactive_timeout                 | 28800    |
| lock_wait_timeout                   | 31536000 |
| net_read_timeout                    | 30       |
| net_write_timeout                   | 60       |
| slave_net_timeout                   | 3600     |
| wait_timeout                        | 28800    |
+-------------------------------------+----------+

以下は、MySQLの「SHOW VARIABLES 構文」のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/show-variables.html

 

最大接続数を表示する

show global variables like 'max_connections';
show session variables like 'max_connections';
show variables like 'max_connections';
  • show variables は、MySQLのシステム変数の値を表示します。
  • 「max_connections」の指定で、最大接続数を表示します。
  • globalを指定するとMySQL への新しい接続に使用される値を表示します。
  • sessionを指定すると現在の接続に有効な値を表示します。
  • global/sessionを指定しない場合、sessionになります。
MariaDB [(none)]> show variables like 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+

 

スロークエリの設定を表示する

show global variables like 'slow_query%';
show session variables like 'slow_query%';
show variables like 'slow_query%';
  • show variables は、MySQLのシステム変数の値を表示します。
  • globalを指定するとMySQL への新しい接続に使用される値を表示します。
  • sessionを指定すると現在の接続に有効な値を表示します。
  • global/sessionを指定しない場合、sessionになります。
MariaDB [testphp]> show variables like 'slow_query%';
+---------------------+--------------+
| Variable_name       | Value        |
+---------------------+--------------+
| slow_query_log      | OFF          |
| slow_query_log_file | pc1-slow.log |
+---------------------+--------------+
3 rows in set (0.00 sec)

5行目は、スロークエリの出力がオフ(無効)になっています。
6行目は、スロークエリのパスとログ名です。E:\xampp\mysql\data配下に出力されました。

変更する場合、setコマンドを使用します。

MariaDB [(none)]> set global slow_query_log = ON;
MariaDB [(none)]> set global slow_query_log_file = 'pc2-slow.log';

 

スロークエリとする秒数を表示する

show global variables like 'long_query_time';
show session variables like 'long_query_time';
show variables like 'long_query_time';
  • show variables は、MySQLのシステム変数の値を表示します。
  • globalを指定するとMySQL への新しい接続に使用される値を表示します。
  • sessionを指定すると現在の接続に有効な値を表示します。
  • global/sessionを指定しない場合、sessionになります。
MariaDB [testphp]> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)

5行目は、10秒を超えるとスロークエリとして出力する設定になっています。

変更する場合、setコマンドを使用します。

MariaDB [(none)]> set global long_query_time = 0.1;

 

起動してからの最大同時接続数を表示する

show global status like 'Max_used_connections';
show session status like 'Max_used_connections';
show status like 'Max_used_connections';
  • show status は、サーバーのステータス情報を表示します。
  • 「Max_used_connections」の指定で、起動してからの最大同時接続数を表示します。
  • globalを指定するとMySQL へのすべての接続のステータス値を表示します。
  • sessionを指定すると現在の接続のステータス値を表示します。
  • global/sessionを指定しない場合、sessionになります。
MariaDB [(none)]> show status like 'Max_used_connections';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| Max_used_connections | 5     |
+----------------------+-------+

 

スレッド情報を表示する

show global status like 'Thread_%';
show session status like 'Thread_%';
show status like 'Thread_%';
  • show status は、サーバーのステータス情報を表示します。
  • 「Thread_%」の指定で、Thread_で始まるスレッド情報を表示します。
    %はワイルドカード文字です。
  • globalを指定するとMySQL へのすべての接続のステータス値を表示します。
  • sessionを指定すると現在の接続のステータス値を表示します。
  • global/sessionを指定しない場合、sessionになります。
MariaDB [(none)]> show status like 'Thread_%';
+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| Threadpool_idle_threads | 0     |
| Threadpool_threads      | 2     |
| Threads_cached          | 0     |
| Threads_connected       | 1     |
| Threads_created         | 10    |
| Threads_running         | 1     |
+-------------------------+-------+

Threads_cachedは、キャッシュされているスレッド数です。
Threads_connectedは、現在、接続しているスレッド数です。
Threads_createdは、生成されたスレッド数です。
Threads_runningは、スリープになっていないスレッド数です。

以下は、MySQLの「SHOW STATUS 構文」のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/show-status.html

 

使用できる文字コードを表示する

show character set;
  • 使用できる文字コードを表示します。

一番左の列が文字コード名です。 

MariaDB [(none)]> show character set;
+----------+-----------------------------+---------------------+--------+
| Charset  | Description                 | Default collation   | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese    | big5_chinese_ci     |      2 |
| dec8     | DEC West European           | dec8_swedish_ci     |      1 |
| cp850    | DOS West European           | cp850_general_ci    |      1 |
| hp8      | HP West European            | hp8_english_ci      |      1 |
| koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    |      1 |
| latin1   | cp1252 West European        | latin1_swedish_ci   |      1 |
| latin2   | ISO 8859-2 Central European | latin2_general_ci   |      1 |
| swe7     | 7bit Swedish                | swe7_swedish_ci     |      1 |
| ascii    | US ASCII                    | ascii_general_ci    |      1 |
| ujis     | EUC-JP Japanese             | ujis_japanese_ci    |      3 |
| sjis     | Shift-JIS Japanese          | sjis_japanese_ci    |      2 |
| hebrew   | ISO 8859-8 Hebrew           | hebrew_general_ci   |      1 |
| tis620   | TIS620 Thai                 | tis620_thai_ci      |      1 |
| euckr    | EUC-KR Korean               | euckr_korean_ci     |      2 |
| koi8u    | KOI8-U Ukrainian            | koi8u_general_ci    |      1 |
| gb2312   | GB2312 Simplified Chinese   | gb2312_chinese_ci   |      2 |
| greek    | ISO 8859-7 Greek            | greek_general_ci    |      1 |
| cp1250   | Windows Central European    | cp1250_general_ci   |      1 |
| gbk      | GBK Simplified Chinese      | gbk_chinese_ci      |      2 |
| latin5   | ISO 8859-9 Turkish          | latin5_turkish_ci   |      1 |
| armscii8 | ARMSCII-8 Armenian          | armscii8_general_ci |      1 |
| utf8     | UTF-8 Unicode               | utf8_general_ci     |      3 |
| ucs2     | UCS-2 Unicode               | ucs2_general_ci     |      2 |
| cp866    | DOS Russian                 | cp866_general_ci    |      1 |
| keybcs2  | DOS Kamenicky Czech-Slovak  | keybcs2_general_ci  |      1 |
| macce    | Mac Central European        | macce_general_ci    |      1 |
| macroman | Mac West European           | macroman_general_ci |      1 |
| cp852    | DOS Central European        | cp852_general_ci    |      1 |
| latin7   | ISO 8859-13 Baltic          | latin7_general_ci   |      1 |
| utf8mb4  | UTF-8 Unicode               | utf8mb4_general_ci  |      4 |
| cp1251   | Windows Cyrillic            | cp1251_general_ci   |      1 |
| utf16    | UTF-16 Unicode              | utf16_general_ci    |      4 |
| utf16le  | UTF-16LE Unicode            | utf16le_general_ci  |      4 |
| cp1256   | Windows Arabic              | cp1256_general_ci   |      1 |
| cp1257   | Windows Baltic              | cp1257_general_ci   |      1 |
| utf32    | UTF-32 Unicode              | utf32_general_ci    |      4 |
| binary   | Binary pseudo charset       | binary              |      1 |
| geostd8  | GEOSTD8 Georgian            | geostd8_general_ci  |      1 |
| cp932    | SJIS for Windows Japanese   | cp932_japanese_ci   |      2 |
| eucjpms  | UJIS for Windows Japanese   | eucjpms_japanese_ci |      3 |
+----------+-----------------------------+---------------------+--------+

以下は、MySQLの「MySQL での文字セットと照合順序」のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/charset-mysql.html

 

文字セットの照合順序を一覧表示する

show collation;

照合順序とは文字の大小関係、ソート順を表します。

MariaDB [testphp]> show collation;
+------------------------------+----------+-----+---------+----------+---------+
| Collation                    | Charset  | Id  | Default | Compiled | Sortlen |
+------------------------------+----------+-----+---------+----------+---------+
(中略)
| utf8mb4_general_ci           | utf8mb4  |  45 | Yes     | Yes      |       1 |
| utf8mb4_bin                  | utf8mb4  |  46 |         | Yes      |       1 |
(中略)

6行目のutf8mb4_general_ciは、英字の大文字と小文字を区別しません。
7行目のutf8mb4_binは、英字の大文字と小文字を区別します。

 

実行中のスレッドを表示する

show processlist;

実行中のスレッドを表示します。

MariaDB [(none)]> show processlist;
+----+------+-----------------+------+---------+------+-------+------------------+----------+
| Id | User | Host            | db   | Command | Time | State | Info             | Progress |
+----+------+-----------------+------+---------+------+-------+------------------+----------+
| 91 | root | localhost:49259 | NULL | Query   |    0 | init  | show processlist |    0.000 |
+----+------+-----------------+------+---------+------+-------+------------------+----------+

以下は、MySQLの「SHOW PROCESSLIST 構文」のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/show-processlist.html

 

スレッドを停止する

kill 数値

スレッドを停止します。
数値は、show processlistコマンドを実行して表示されるIdを指定します。

MariaDB [(none)]> show processlist;
+----+------+-----------------+---------+---------+------+-------+------------------+----------+
| Id | User | Host            | db      | Command | Time | State | Info             | Progress |
+----+------+-----------------+---------+---------+------+-------+------------------+----------+
| 51 | root | localhost:65092 | testphp | Sleep   |  155 |       | NULL             |    0.000 |
| 78 | root | localhost:49221 | NULL    | Query   |    0 | init  | show processlist |    0.000 |
| 81 | root | localhost:49225 | testphp | Sleep   |    4 |       | NULL             |    0.000 |
+----+------+-----------------+---------+---------+------+-------+------------------+----------+
3 rows in set (0.00 sec)

MariaDB [(none)]> kill 51;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> show processlist;
+----+------+-----------------+---------+---------+------+-------+------------------+----------+
| Id | User | Host            | db      | Command | Time | State | Info             | Progress |
+----+------+-----------------+---------+---------+------+-------+------------------+----------+
| 78 | root | localhost:49221 | NULL    | Query   |    0 | init  | show processlist |    0.000 |
| 81 | root | localhost:49225 | testphp | Sleep   |   36 |       | NULL             |    0.000 |
+----+------+-----------------+---------+---------+------+-------+------------------+----------+
2 rows in set (0.00 sec)

11行目は、Idの51を指定しています。

 

テーブルの一覧表示とロック中のテーブルを表示する

show open tables;
  • テーブルの一覧表示とロック中のテーブルを表示します。
  • 項目のIn_useは、テーブルに対するロックの要求数です。
    0の場合ロックされていません。
    1以上の場合ロックされています。
  • 項目のName_lockedは、テーブルの削除や名前の変更などのDDL操作でテーブル名がロックされているかどうかを表します。
    0の場合ロックされていません。
    1以上の場合ロックされています。
MariaDB [(none)]> show open tables;
+------------+---------------------------+--------+-------------+
| Database   | Table                     | In_use | Name_locked |
+------------+---------------------------+--------+-------------+
| phpmyadmin | pma__table_uiprefs        |      0 |           0 |
| mysql      | servers                   |      0 |           0 |
| phpmyadmin | pma__users                |      0 |           0 |
| mysql      | procs_priv                |      0 |           0 |
| mysql      | plugin                    |      0 |           0 |
| phpmyadmin | pma__column_info          |      0 |           0 |
| testblog   | tokuten                   |      0 |           0 |
| testblog   | syouhin                   |      0 |           0 |

以下は、MySQLの「SHOW OPEN TABLES 構文」のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/show-open-tables.html

関連の記事

SQL 外部結合のサンプル(left outer join/right outer join)
SQL 副問合せのサンプル(サブクエリ)
SQL 自己結合のサンプル
SQL 内部結合のサンプル(inner join)
SQL UNIONとUNION ALLのサンプル
SQL INSERT文のサンプル
SQL UPDATE文とDELETE文のサンプル

△上に戻る