MySQL的状态变量和系统变量

2015-12-01 阅读: MySQL

status和variable

MySQL的状态变量显示MySQL服务实例的状态信息,这些状态信息是动态的,包括MySQL服务器连接的会话状态、变量信息等。默认情况下状态变量都是以大写字母开头。

查看MySQL的状态变量:

show status;
show session status;
show global status;

MySQL系统变量是指MySQL服务实例的各种系统变量(包括全局系统变量、会话系统变量、静态变量),这些变量包含MySQL编译时的参数默认值,或者my.cnf配置文件里配置的参数值。系统变量是一个静态的参数,默认情况下系统变量都是小写字母。

查看MySQL的系统变量:

show variables;
show session variables;
show global variables;

status常用来观测当前MySQL是否运行正常,如果不正常可尝试使用variable调整。

MySQL超时相关变量

show variables like '%timeout%';
+-------------------------------------------+----------+
| Variable_name                             | Value    |
+-------------------------------------------+----------+
| connect_timeout                           | 10       |
| delayed_insert_timeout                    | 300      |
| group_replication_components_stop_timeout | 31536000 |
| 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    |
+-------------------------------------------+----------+
14 rows in set (0.00 sec)

大多数变量都见名知义:

  • innodb_lock_wait_timeout InnoDB的锁等待时间(秒),为行级锁锁等待的时间,出现锁等待时,等待时长超过改值会导致锁等待的SQL回滚(不是整个事务),如果希望整个事务回滚可以设置innodb_rollback_on_timeout
  • innodb_rollback_on_timeout 设置为true,当遇到事务超时,会回滚整个事务
  • slave_net_timeout 复制连接超时时间,主从复制时slave从master读取binlog失败后,slave等待slave_net_timeout时间后,重新从master读取binlog。

连接相关状态和变量

show status like '%connect%';
+-----------------------------------------------+---------------------+
| Variable_name                                 | Value               |
+-----------------------------------------------+---------------------+
| Aborted_connects                              | 0                   |
| Connection_errors_accept                      | 0                   |
| Connection_errors_internal                    | 0                   |
| Connection_errors_max_connections             | 0                   |
| Connection_errors_peer_address                | 0                   |
| Connection_errors_select                      | 0                   |
| Connection_errors_tcpwrap                     | 0                   |
| Connections                                   | 5                   |
| Locked_connects                               | 0                   |
| Max_used_connections                          | 1                   |
| Max_used_connections_time                     | 2015-12-01 18:04:31 |
| Performance_schema_session_connect_attrs_lost | 0                   |
| Ssl_client_connects                           | 0                   |
| Ssl_connect_renegotiates                      | 0                   |
| Ssl_finished_connects                         | 0                   |
| Threads_connected                             | 1                   |
+-----------------------------------------------+---------------------+
16 rows in set (0.00 sec)

  • Connection_errors_max_connections:当MySQL的最大并发连接数超过设置的max_connections变量的值,被拒绝的次数会记录到这个状态值里。 这个状态值过高,有可能是系统并发较高,可以考虑调大max_connections
  • Connections MySQL服务从初始化开始成功建立连接的数量,该值不断累加。
  • Max_used_connections MySQL服务从启动开始,同一时刻并发连接的最大值,如果该值很大,则有可能系统并发较高,可以考虑调大max_connections
  • Threads_connected 当前打开的连接数量。
 show variables like '%connect%';
+-----------------------------------------------+-----------------+
| Variable_name                                 | Value           |
+-----------------------------------------------+-----------------+
| character_set_connection                      | utf8            |
| collation_connection                          | utf8_general_ci |
| connect_timeout                               | 10              |
| disconnect_on_expired_password                | ON              |
| group_replication_recovery_reconnect_interval | 60              |
| init_connect                                  |                 |
| max_connect_errors                            | 100             |
| max_connections                               | 151             |
| max_user_connections                          | 0               |
| performance_schema_session_connect_attrs_size | 512             |
+-----------------------------------------------+-----------------+

max_connections:MySQL实例同时接受的最大的并发连接数。 max_user_connections: 指定账号的最大并发连接数 max_connect_errors:客户端恶意连接MySQL错误数达到该值时,MySQL会拒绝来自此客户端host的连接。执行flush hosts后会清零。

参考

标题:MySQL的状态变量和系统变量
本文链接:https://blog.frognew.com/2015/12/mysql-status-and-variables.html
转载请注明出处。

目录