mysqlコマンドTips [プログラム]
MySQLのコマンド
1行でMySQLのコマンドを記述。
これでスクリプトも実行可能
rootのパスワードを1234とします。
テーブル名をtest_tbとします。
#mysql -u root -p1234 -e "SQL文"
例えば、テーブルのステータス表示。
#mysql -u root -p1234 -e "show table status from test_db \G"
最後の\Gは、コマンドラインで改行がなく見にくい場合、1行ごとに縦に表示してくれます。
全体のステータス表示。
# mysql -u root -p1234 -e "show status"
表示例
(略)
| Rpl_status | NULL |
| Select_full_join | 0 |
| Select_full_range_join | 0 |
| Select_range | 0 |
| Select_range_check | 0 |
| Select_scan | 0 |
| Slave_open_temp_tables | 0 |
| Slave_retried_transactions | 0 |
| Slave_running | OFF |
| Slow_launch_threads | 0 |
| Slow_queries | 0 |
| Sort_merge_passes | 0 |
| Sort_range | 0 |
| Sort_rows | 0 |
| Sort_scan | 0 |
(略)
MySQLのステータス表示。
#mysql -u root -p1234 -e "status"
表示例
(略)
Connection id: 2773
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.1.54 MySQL Community Server (GPL) by Remi
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 27 min 42 sec
Threads: 23 Questions: 13280 Slow queries: 9 Opens: 113 Flush tables: 1 Open tables: 64 Queries per second avg: 7.990
また、コメントなどの日本語を使用している場合は文字化けするので、以下のようにします。
#mysql -u root -p1234 -e "set names utf8;show table status from test_db \G"
表示例
(略)
*************************** 7. row ***************************
Name: web_test
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 4537197
Avg_row_length: 68
Data_length: 311885824
Max_data_length: 0
Index_length: 480378880
Data_free: 5400166400
Auto_increment: 13823510
Create_time: NULL
Update_time: NULL
Check_time: NULL
Collation: utf8_unicode_ci
Checksum: NULL
Create_options: partitioned
Comment: データを格納
(略)
現在実行中のSQLリスト
#mysql -u root -p1234 -e "show full processlist \G"
表示例
*************************** 24. row ***************************
Id: 2266
User: root
Host: localhost
db: NULL
Command: Query
Time: 0
State: NULL
Info: show full processlist
実行中のSQL IDの123を強制終了させる場合
mysql -u root -pnonamasu -e "kill 123"
1行でMySQLのコマンドを記述。
これでスクリプトも実行可能
rootのパスワードを1234とします。
テーブル名をtest_tbとします。
#mysql -u root -p1234 -e "SQL文"
例えば、テーブルのステータス表示。
#mysql -u root -p1234 -e "show table status from test_db \G"
最後の\Gは、コマンドラインで改行がなく見にくい場合、1行ごとに縦に表示してくれます。
全体のステータス表示。
# mysql -u root -p1234 -e "show status"
表示例
(略)
| Rpl_status | NULL |
| Select_full_join | 0 |
| Select_full_range_join | 0 |
| Select_range | 0 |
| Select_range_check | 0 |
| Select_scan | 0 |
| Slave_open_temp_tables | 0 |
| Slave_retried_transactions | 0 |
| Slave_running | OFF |
| Slow_launch_threads | 0 |
| Slow_queries | 0 |
| Sort_merge_passes | 0 |
| Sort_range | 0 |
| Sort_rows | 0 |
| Sort_scan | 0 |
(略)
MySQLのステータス表示。
#mysql -u root -p1234 -e "status"
表示例
(略)
Connection id: 2773
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.1.54 MySQL Community Server (GPL) by Remi
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 27 min 42 sec
Threads: 23 Questions: 13280 Slow queries: 9 Opens: 113 Flush tables: 1 Open tables: 64 Queries per second avg: 7.990
また、コメントなどの日本語を使用している場合は文字化けするので、以下のようにします。
#mysql -u root -p1234 -e "set names utf8;show table status from test_db \G"
表示例
(略)
*************************** 7. row ***************************
Name: web_test
Engine: InnoDB
Version: 10
Row_format: Compact
Rows: 4537197
Avg_row_length: 68
Data_length: 311885824
Max_data_length: 0
Index_length: 480378880
Data_free: 5400166400
Auto_increment: 13823510
Create_time: NULL
Update_time: NULL
Check_time: NULL
Collation: utf8_unicode_ci
Checksum: NULL
Create_options: partitioned
Comment: データを格納
(略)
現在実行中のSQLリスト
#mysql -u root -p1234 -e "show full processlist \G"
表示例
*************************** 24. row ***************************
Id: 2266
User: root
Host: localhost
db: NULL
Command: Query
Time: 0
State: NULL
Info: show full processlist
実行中のSQL IDの123を強制終了させる場合
mysql -u root -pnonamasu -e "kill 123"
コメント 0