table open cache efficiency = Table_open_cache_hits/(Table_open_cache_misses+ Table_open_cache_hits) select * from performance_schema.global_status where variable_name in ('Table_open_cache_hits','Table_open_cache_misses');
21.incoming netword traffic(Bytes/Second)(每秒从全部客户端接收的字节数)mysql
incoming netword traffic(Bytes/Second)= Bytes_received/Uptime; select * from performance_schema.global_status where variable_name in ('Bytes_received','Uptime');
22.Outgoing Network Traffic(Kbytes/Second)(每秒发送给全部客户端的千字节数)sql
Outgoing Network Traffic(Kbytes/Second)= Bytes_sent/Uptime/1024; select * from performance_schema.global_status where variable_name in ('Bytes_sent','Uptime');
23.transaction_isolation:实例的隔离级别。数据库
show global variables like 'transaction_isolation';
一、查看此时有多少个锁等待缓存
select count(*) from information_schema.INNODB_LOCKS;
二、innodb_row_lock_waits:数据库运行以来一共发生了多少次行锁等待安全
show global status where variable_name ='innodb_row_lock_waits';
三、Innodb_row_lock_current_waits: InnoDB表上当前等待的行锁数。获取方式:show global status服务器
四、Innodb_row_lock_time: 获取innodb行锁须要等待的时间,单位:毫秒。获取方式:show global statussession
五、Innodb_row_lock_time_max:获取InnoDB表行锁的最长时间,单位:毫秒。获取方式:show global statusdom
一、Innodb_buffer_pool_wait_free: Innodb的IO线程从数据文件中读取了数据要写入buffer pool的时候,须要等待空闲页的次数。若是该值太大,须要增长innodb_buffer_pool_size。获取方式:show global statusfetch
二、Innodb_log_waits: 由于日志缓冲(log buffer)不足致使等待的次数。该值若是太大,须要增大innodb_log_buffer_size的值。获取方式:show global statusspa
三、Innodb buffer pool usege rete(innodb buffer pool使用率):业务高峰建议值不超过95%。
Innodb buffer pool usege rete=innodb_buffer_pool_pages_data/innodb_buffer_pool_pages_total x 100% ##能够参考这个值以及结合其它状态来判断是否增长innodb_buffer_pool_size。 select * from performance_schema.global_status where variable_name in ('innodb_buffer_pool_pages_data','innodb_buffer_pool_pages_total');
四、Innodb Buffer pool hit rate(innodb buffer pool命中率)(建议值不低于98%。):
获取方式一:
show engine innodb status,而后查看BUFFER POOL AND MEMORY节中的Buffer pool hit rate。
获取方式二:
Innodb Buffer pool hit rate=Innodb_buffer_pool_read_requests/(Innodb_buffer_pool_read_requests+Innodb_buffer_pool_reads+Innodb_buffer_pool_read_ahead) select * from performance_schema.global_status where variable_name in ('Innodb_buffer_pool_read_requests','Innodb_buffer_pool_reads','Innodb_buffer_pool_read_ahead');
五、innodb_dblwr_pages_written/innodb_dblwr_writes:数据库的写入压力。
Innodb_dblwr_pages_written表示double write一共写了多少页,Innodb_dblwr_writes表示double write实际写入次数。若是innodb_dblwr_pages_written/innodb_dblwr_writes大于64说明写入压力很高。获取方式:show global status。相对于医院能够考虑下降一半,大于32报警。
六、hash searches/s:每秒使用自适应哈希索引的次数。经过查看这个值来判断是否禁用自适应哈希索引。获取方式:show engine innodb status
一、查看当前innodb表建立的innodb临时表(支持5.7和8.0)。
select count(*) from information_schema.INNODB_TEMP_TABLE_INFO;
二、查看自启动以来innodb表的插入、删除、更新、查询的行数(须要打开计数器set global innodb_monitor_enable = all;)
SELECT COUNT FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME='dml_inserts'; SELECT COUNT FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME='dml_deletes'; SELECT COUNT FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME='dml_updates'; SELECT COUNT FROM INFORMATION_SCHEMA.INNODB_METRICS WHERE NAME='dml_reads';
select user,host from mysql.user where (Drop_priv='Y' OR Grant_priv='Y' OR Super_priv='Y' OR Alter_priv='Y' OR Shutdown_priv='Y' OR Lock_tables_priv='Y') and user not in ('mysql.session');
8.0:
SELECT USER,HOST FROM mysql.user where account_locked='Y' AND USER NOT IN ('mysql.session','mysql.sys','mysql.infoschema');
5.7:
SELECT USER,HOST FROM mysql.user where account_locked='Y' AND USER NOT IN ('mysql.session','mysql.sys');
5.6如下包括5.6,没有锁定用户的功能。
select user,host from mysql.user where password_expired = 'Y';
上面的语句是找到建立时建立就指定了过时的语句,例以下面的语句。
CREATE USER 'jeffrey'@'%' IDENTIFIED by '123456a!' password expire;
一、确认系统是否设置了 default_password_lifetime 变量值。
show global variables like 'default_password_lifetime';
若是为0,表示没有启用系统的密码过时策略,则执行步骤2,就能拿到全部用户的过时天数。若是不为0,则步骤2和步骤3都要执行。
二、找出指定了密码过时的用户(这个优先级高于系统设置的变量)
SELECT USER,HOST,password_lifetime,password_last_changed,DATEDIFF(ADDDATE(password_last_changed,password_lifetime),CURDATE()) AS dr FROM mysql.user WHERE password_lifetime IS NOT NULL;
dr表示还有几天到期,若是为负数表示超过到期日期的天数。到期剩余天数=最后一次修改密码的时间+password_lifetime-CURDATE()
三、取出使用全局的密码过时策略的用户的到期时间
(因为5.7要开启show_compatibility_56参数,因此不能一步算出来,须要将default_password_lifetime的值收集到咱们的库里,而后在进行加减。)
SELECT USER,HOST,password_last_changed,CURDATE() FROM mysql.user WHERE password_lifetime IS NULL;
password_last_changed表示最后一次修改密码的时间。到期剩余天数=最后一次修改密码的时间+default_password_lifetime-CURDATE()
一、validate_password_policy:设置密码策略。须要安装validate_password,不然下面的参数都不可用
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
值 |
进行的检测 |
0 or LOW |
长度; |
1 or MEDIUM |
长度;数字、小写/大写和特殊字符 |
2 or STRONG |
长度;数字、小写/大写和特殊字符;字典文件 |
二、validate_password_number_count:当validate_password_policy为MEDIUM或STRONG,则要求密码最少具备多少个数字字符数。
三、validate_password_special_char_count:当validate_password_policy为MEDIUM或STRONG,则要求密码中最少具备多少个特殊字符数。
四、validate_password_mixed_case_count:当validate_password_policy为MEDIUM或STRONG,则要求密码中最少具备多少个小写字符和大写字符。
五、validate_password_length:须要密码中最少具备多少个字符数。值的设置不能小于此表达式的值:
validate_password_number_count + validate_password_special_char_count + ( 2 * validate_password_mixed_case_count )
六、validate_password_dictionary_file:设置检查密码字典文件的路径和文件名。当validate_password_policy为STRONG,密码长度大于4的每一个子串都将与字典文件中的单词进行比较。任何匹配都会致使密码被拒绝。比较不区分大小写。(指定的密码字典文件不须要设置属主为mysql。密码字典表中的单词须要知足大于4个字符串。)
show global variables like 'log_bin';
SELECT object_schema,object_name,count_read AS rows_full_scanned FROM performance_schema.table_io_waits_summary_by_index_usage WHERE index_name IS NULL AND count_read > 0 ORDER BY count_read DESC;
SELECT object_schema,object_name,index_name FROM performance_schema.table_io_waits_summary_by_index_usage WHERE index_name IS NOT NULL AND count_star = 0 AND object_schema not in ('mysql','performance_schema') AND index_name <> 'PRIMARY' ORDER BY object_schema, object_name;
SELECT object_schema AS table_schema,object_name AS table_name,count_star AS rows_io_total,count_read AS rows_read,count_write AS rows_write,count_fetch AS rows_fetchs,count_insert AS rows_inserts,count_update AS rows_updates,count_delete AS rows_deletes FROM performance_schema.table_io_waits_summary_by_table ORDER BY sum_timer_wait DESC limit 10;
select table_schema,table_name,redundant_index_name,redundant_index_columns,dominant_index_name,dominant_index_columns from sys.schema_redundant_indexes order by table_name;