This article mainly introduces the use of Mysqladmin to detect MySQL running state of the tutorial, including mysqladmin tools simple awk use, the need for friends can refer to the
Mysqladmin is an important client of MySQL, the most common is to use it to close the database, in addition to this command can also understand the running state of MySQL, process information, process killing and so on. This article describes how to use the Mysqladmin extended-status (because there is no "ambiguity", so you can use Ext instead) to understand the running state of MySQL.
1. Use-r/-i parameter
Using the mysqladmin extended-status command, you get all the MySQL performance metrics, the output of show global status, but because most of these metrics are cumulative, you need to perform a margin calculation if you want to know the current state. This is an additional feature of Mysqladmin extended-status, very practical. The default, using Extended-status, see also cumulative value, but, plus the parameter-R (--relative), you can see the difference between the indicators, with the parameter-I (--sleep) can specify the frequency of the refresh, then like the following command:
?
1 2 3 4 5 6 7 8 9 10 |
Mysqladmin-uroot-r-I 1-pxxx extended-status +------------------------------------------+----------------------+ | variable_name | Value | +------------------------------------------+----------------------+ | aborted_clients | 0 | | Com_select | 336 | | Com_insert | 243 | ...... | threads_created | 0 | +------------------------------------------+----------------------+ |
2. Use with grep
Together with grep, we have:
?
1 2 3 4 5 6 7 8 9 10 11 12-13 |
Mysqladmin-uroot-r-I 1-pxxx extended-status |grep "questions| queries| innodb_rows| Com_select | Com_insert | Com_update | Com_delete "| Com_delete | 1 | | Com_delete_multi | 0 | | Com_insert | 321 | | Com_select | 286 | | Com_update | 63 | | innodb_rows_deleted | 1 | | innodb_rows_inserted | 207 | | Innodb_rows_read | 5211 | | innodb_rows_updated | 65 | | Queries | 2721 | | Questions | 2721 | |
3. In conjunction with simple awk
Use awk to output time information simultaneously:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 The |
mysqladmin-uroot-p-h127.0.0.1-p3306-r-I 1 ext | Awk-f "|" ' {if ($ ~/variable_name/) {print ' <-------------' strftime ('%h:%m:%s ') '-------------> ';} if ($ ~/questions| queries| innodb_rows| Com_select | Com_insert | Com_update | Com_delete | innodb_buffer_pool_read_requests/) print $ $; } ' <-------------12:38:49-------------> Com_delete 0 com_insert 0 com_select 0 com_update 0 Innodb_buffer_pool_rea 589 innodb_rows_deleted 0 innodb_rows_inserted 2 innodb_rows_read d_requests innodb_rows_updated NS 1 <-------------12:38:50-------------> Com_delete 0 com_insert 0 com_select 0 com_update 0 Innodb_buffer_pool_r Ead_requests 1814 innodb_rows_deleted 0 innodb_rows_inserted 0 innodb_rows_read 8 innodb_rows_updated 8 Queries Questio NS 1 |
4. With a complex awk
It's not easy anyway, it's a little bit more complicated, so the output is a bit more friendly because awk doesn't support dynamic variables, so the code looks more complicated:
?
1, 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
mysqladmin-p3306-uroot-p-h127.0.0.1-r-I 1 ext | awk-f "|" "Begin{count=0;}" ' {if ($ ~/variable_name/&& (++count)%20 = 1) {print "----------|---------|---MySQL Command Status--|----- Innodb row Operation----| |-Buffer Pool Read-"; Print---time---|---QPS---|select insert update delete| Read inserted updated deleted| Logical physical "; else if ($ ~/queries/) {queries=$3} else if ($ ~/com_select/) {com_select=$3;} else if ($ ~/com_insert/) {Com_inse rt=$3;} else if ($ ~/com_update/) {com_update=$3} else if ($ ~/com_delete/) {com_delete=$3;} else if ($ ~/innodb_rows_read/ ) {innodb_rows_read=$3;} else if ($ ~/innodb_rows_deleted/) {innodb_rows_deleted=$3} else if ($ ~/innodb_rows_inserted/) {Innodb_rows_ inserted=$3;} else if ($ ~/innodb_rows_updated/) {innodb_rows_updated=$3} else if ($ ~/innodb_buffer_pool_read_requests/) {innodb_ lor=$3;} else if ($ ~/innodb_buffer_pool_reads/) {innodb_phr=$3} else if ($ ~ /uptime/&& Count >= 2) {printf ("%s |%9d", Strftime ("%h:%m:%s"), queries); printf ("|%6d%6d%6d%6d", Com_selec T,com_insert,com_update,com_delete); printf ("|%6d%8d%7d%7d", innodb_rows_read,innodb_rows_inserted,innodb_rows_updated,innodb_rows_deleted); printf ("|%10d%11dn", INNODB_LOR,INNODB_PHR); } ' ----------|---------|---MySQL Command Status--|-----Innodb row Operation----| | Buffer Pool Read-----time ---|---QPS---|select insert update delete| Read inserted updated deleted| Logical Physical 10:37:13 | 2231| 274 214 70 0| 4811 160 71 0| 4146 0 10:37:14 | 2972| 403 256 84 23| 2509 173 85 23| 4545 0 10:37:15 | 2334| 282 232 66 1| 1266 154 67 1| 3543 0 10:37:15 | 2241| 271 217 66 0| 1160 129 66 0| 2935 0 10:37:17 | 2497| 299 224 97 0| 1141 149 95 0| 3831 0 10:37:18 | 2871| 352 304 74 23| 8202 226 73 23| 6167 0 10:37:19 | 2441| 284 233 82 0| 1099 121 78 0| 3292 0 10:37:20 | 2342| 279 242 61 0| 1083 224 61 0| 3366 0 |
That's it, these commands to use more of their own, readily shared out