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 character set; |
| 文字セットの照合順序を一覧表示する | show collation; |
| スレッド情報を表示する(説明) | show global status like 'Thread_%'; show session status like 'Thread_%'; show status like 'Thread_%'; |
| 実行中のスレッドを表示する(説明) | show processlist; |
| スレッドを停止する(説明) | kill 数値 |
| 最大接続数を表示する(説明) | show global variables like 'max_connections'; show session variables like 'max_connections'; show variables like 'max_connections'; |
| 起動してからの最大同時接続数を表示する(説明) | show global status like 'Max_used_connections'; show session status like 'Max_used_connections'; show status like 'Max_used_connections'; |
| ロック中のテーブルを表示する(説明) | 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になります。
- 以下は、MySQLの「13.7.5.40 SHOW VARIABLES 構文」のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/show-variables.html
以下は、実行結果です。
MariaDB [(none)]> show 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行目は、サーバーのデフォルトの文字コードです。
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になります。
- 以下は、MySQLの「SHOW VARIABLES 構文」のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/show-variables.html
以下は、実行結果です。
+-----------------------------+----------+
| Variable_name | Value |
+-----------------------------+----------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| have_statement_timeout | YES |
| innodb_flush_log_at_timeout | 1 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| rpl_stop_slave_timeout | 31536000 |
| slave_net_timeout | 60 |
| wait_timeout | 28800 |
+-----------------------------+----------+
使用できる文字コードを表示する
| show character set; |
- 使用できる文字コードを表示します。
- 以下は、MySQLの「MySQL での文字セットと照合順序」のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/charset-mysql.html
以下は実行結果です。一番左の列が文字コード名です。
+----------+---------------------------------+---------------------+--------+
| 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 |
| gb18030 | China National Standard GB18030 | gb18030_chinese_ci | 4 |
+----------+---------------------------------+---------------------+--------+
スレッド情報を表示する
| show global status like 'Thread_%'; show session status like 'Thread_%'; show status like 'Thread_%'; |
- SHOW STATUS は、サーバーのステータス情報を表示します。
- 「Thread_%」の指定で、Thread_で始まるスレッド情報を表示します。
%はワイルドカード文字です。 - globalを指定するとMySQL へのすべての接続のステータス値を表示します。
- sessionを指定すると現在の接続のステータス値を表示します。
- global/sessionを指定しない場合、sessionになります。
- 以下は、MySQLの「SHOW STATUS 構文」のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/show-status.html
以下は実行結果です。
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_cached | 0 |
| Threads_connected | 1 |
| Threads_created | 1 |
| Threads_running | 1 |
+-------------------+-------+
Threads_connectedは、キャッシュされているスレッド数です。
Threads_connectedは、現在、接続しているスレッド数です。
Threads_connectedは、生成されたスレッド数です。
Threads_connectedは、スリープになっていないスレッド数です。
実行中のスレッドを表示する
| show processlist; |
実行中のスレッドを表示します。
以下は実行結果です。
+----+------+-----------+------+---------+------+----------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+----------+------------------+
| 5 | root | localhost | NULL | Query | 0 | starting | show processlist |
+----+------+-----------+------+---------+------+----------+------------------+
スレッドを停止する
| kill 数値 |
スレッドを停止します。
数値は、show processlistコマンドを実行して表示されるIdを指定します。
最大接続数を表示する
| 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になります。
- 以下は、MySQLの「SHOW VARIABLES 構文」のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/show-variables.html
以下は実行結果です。
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 151 |
+-----------------+-------+
起動してからの最大同時接続数を表示する
| 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になります。
- 以下は、MySQLの「SHOW STATUS 構文」のリンクです。
https://dev.mysql.com/doc/refman/5.6/ja/show-status.html
以下は実行結果です。
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| Max_used_connections | 1 |
+----------------------+-------+
テーブルの一覧表示とロック中のテーブルを表示する
| show open tables; |
- テーブルの一覧表示とロック中のテーブルを表示します。
- 項目のIn_useは、テーブルに対するロックの要求数です。
0の場合ロックされていません。
1以上の場合ロックされています。 - 項目のName_lockedは、テーブルの削除や名前の変更などのDDL操作でテーブル名がロックされているかどうかを表します。
0の場合ロックされていません。
1以上の場合ロックされています。 - 以下は、MySQLの「SHOW OPEN TABLES 構文」のリンクです。
- https://dev.mysql.com/doc/refman/5.6/ja/show-open-tables.html
以下は実行結果の一部です。右側に項目のIn_useとName_lockedがあります。
+--------------------+------------------------------------------------------+--------+-------------+
| Database | Table | In_use | Name_locked |
+--------------------+------------------------------------------------------+--------+-------------+
| performance_schema | events_waits_summary_by_user_by_event_name | 0 | 0 |
| performance_schema | events_waits_summary_global_by_event_name | 0 | 0 |
| performance_schema | events_transactions_summary_global_by_event_name | 0 | 0 |
| performance_schema | replication_connection_status | 0 | 0 |
関連の記事
SQL 外部結合のサンプル(left outer join/right outer join)
SQL 副問合せのサンプル(サブクエリ)
SQL 自己結合のサンプル
SQL 内部結合のサンプル(inner join)
SQL UNIONとUNION ALLのサンプル
SQL INSERT文のサンプル
SQL UPDATE文とDELETE文のサンプル