查看 mysql各状态
MySQLadmin介绍
mysqladmin是一个执行管理操作的客户端程序。它可以用来检查服务器的配置和当前状态、创建和删除数据库等。
mysqladmin工具的使用格式:mysqladmin [option] command [command option] command ......
查看MySQL的安装目录
[root@wl scripts]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 22 Server version: 5.7.36-log MySQL Community Server (GPL) Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show variables like '%char%'; +--------------------------------------+----------------------------------+ | Variable_name | Value | +--------------------------------------+----------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | /usr/local/mysql/share/charsets/ | | validate_password_special_char_count | 1 | +--------------------------------------+----------------------------------+ 9 rows in set (0.09 sec)
character_sets_dir的值是/usr/local/mysql/share/charsets/,则/usr/local/mysql/就是mysql安装路径。
创建软链接
ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/
MySQLadmin使用
option 选项: -c number 自动运行次数统计,必须和 -i 一起使用 -i number 间隔多长时间重复执行 ./mysqladmin -uroot -p -i 2 -c 5 status // 每个两秒查看一次服务器的状态,总共重复5次。 -h, --host=name Connect to host. 连接的主机名或iP -p, --password[=name] 登录密码,如果不写于参数后,则会提示输入 -P, --port=# Port number to use for connection. 指定数据库端口 -s, --silent Silently exit if one can't connect to server. -S, --socket=name Socket file to use for connection. 指定socket file -i, --sleep=# Execute commands again and again with a sleep between. 间隔一段时间执行一次 -u, --user=name User for login if not current user.登录数据库用户名 -v, --verbose Write more information. 写更多的信息 -V, --version Output version information and exit. 显示版本
MySQLadmin相关命令
mysqladmin password Admin@123456 #<==设置密码,前文用过的。 mysqladmin -uroot -pAdmin@123456 password Admin@1234567 #<==修改密码,前文用过的。 mysqladmin -uroot -pAdmin@123456 status #<==查看状态,相当于show status。 mysqladmin -uroot -pAdmin@123456 -i 1 status #<==每秒查看一次状态。 mysqladmin -uroot -pAdmin@123456 extended-status #<==等同show global status;。 mysqladmin -uroot -pAdmin@123456 flush-logs #<==切割日志。 mysqladmin -uroot -pAdmin@123456 processlist #<==查看执行的SQL语句信息。 mysqladmin -uroot -pAdmin@123456 processlist -i 1 #<==每秒查看一次执行的SQL语句。 mysqladmin -uroot -p'Admin@123456' shutdown #<==关闭mysql服务,前文用过的。 mysqladmin -uroot -p'Admin@123456' variables #<==相当于show variables。
实例:
查看服务器的状况 [root@wl ~]# mysqladmin -uroot -p status Enter password: Uptime: 3391 Threads: 4 Questions: 1247 Slow queries: 0 Opens: 971 Flush tables: 1 Open tables: 510 Queries per second avg: 0.367 修改root密码 mysqladmin -u root -poldpassword password 'newpassword' 检查mysqlserver是否可用: mysqladmin -uroot -p ping 显示结果: mysqld is alive 查询服务器的版本 mysqladmin -uroot -p version 显示服务器所有运行的进程: mysqladmin -uroot -p processlist [root@wl data]# mysqladmin -uroot -p -i 1 processlist //每一秒刷新一次 Enter password: +----+------+-----------+-------+---------+------+----------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+-------+---------+------+----------+------------------+ | 4 | root | localhost | | Sleep | 2105 | | | | 6 | root | localhost | mysql | Sleep | 1223 | | | | 7 | root | localhost | | Sleep | 1196 | | | | 9 | root | localhost | | Query | 0 | starting | show processlist | +----+------+-----------+-------+---------+------+----------+------------------+ +----+------+-----------+-------+---------+------+----------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+-------+---------+------+----------+------------------+ | 4 | root | localhost | | Sleep | 2106 | | | | 6 | root | localhost | mysql | Sleep | 1224 | | | | 7 | root | localhost | | Sleep | 1197 | | | | 9 | root | localhost | | Query | 0 | starting | show processlist | +----+------+-----------+-------+---------+------+----------+------------------+ 显示数据库daba-test下有些什么表: mysqlshow -uroot -p mysql [root@wl data]# mysqlshow -uroot -pAdmin@123456 mysql mysqlshow: [Warning] Using a password on the command line interface can be insecure. Database: mysql +---------------------------+ | Tables | +---------------------------+ | columns_priv | | db | | engine_cost | | event | | func | | general_log | | gtid_executed | | help_category | | help_keyword | | help_relation | | help_topic | | innodb_index_stats | | innodb_table_stats | | ndb_binlog_index | | plugin | | proc | | procs_priv | | proxies_priv | | server_cost | | servers | | slave_master_info | | slave_relay_log_info | | slave_worker_info | | slow_log | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | | users | +---------------------------+ 统计mysql下数据库表列的汇总 mysqlshow -uroot -p mysql -v 统计mysql 下数据库表的列数和行数 mysqlshow -uroot -p mysql -v -v 删除数据库 ceshi mysqladmin -uroot -p drop ceshi 重载权限信息 mysqladmin -uroot -p reload 刷新所有表缓存,并关闭和打开log mysqladmin -uroot -p refresh 使用安全模式关闭数据库 mysqladmin -uroot -p shutdown
Mysql 查看链接数,状态 最大并发数
mysql> show variables like '%max_connections%'; //查看最大连接数 +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 4000 | +-----------------+-------+ 1 row in set (0.02 sec) 能够在/etc/my.cnf里面设置数据库的最大链接数 [mysqld] max_connections = 1000 set global max_connections=1000 从新设置 mysql> show status like 'Threads%'; +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | Threads_cached | 0 | | Threads_connected | 4 | //打开的链接数 | Threads_created | 4 | | Threads_running | 1 | //这个数值指的是激活的链接数,这个数值通常远低于connected数值 +-------------------+-------+ 4 rows in set (0.02 sec) Threads_connected 跟show processlist结果相同,表示当前链接数。准确的来讲,Threads_running是表明当前并发数 MySQL服务器的线程数须要在一个合理的范围以内,这样才能保证MySQL服务器健康平稳地运行。Threads_created表示建立过的线程数,经过查看Threads_created就能够查看MySQL服务器的进程状态。 若是咱们在MySQL服务器配置文件中设置了thread_cache_size,当客户端断开以后,服务器处理此客户的线程将会缓存起来以响应下一个客户而不是销毁(前提是缓存数未达上限)。 Threads_created表示建立过的线程数,若是发现Threads_created值过大的话, 代表MySQL服务器一直在建立线程,这也是比较耗资源,能够适当增长配置文件中thread_cache_size值,查询服务器thread_cache_size配置: mysql> show variables like 'thread_cache_size'; +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | thread_cache_size | 256 | +-------------------+-------+ 1 row in set (0.05 sec) 命令: show processlist; 若是是root账号,你能看到全部用户的当前链接。若是是其它普通账号,只能看到本身占用的链接。 show processlist;只列出前100条,若是想全列出请使用show full processlist; show processlist 显示当前正在执行的MySQL链接缓存 mysql> show processlist; +----+------+-----------+-------+---------+------+----------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+-------+---------+------+----------+------------------+ | 4 | root | localhost | NULL | Sleep | 3734 | | NULL | | 6 | root | localhost | mysql | Sleep | 2852 | | NULL | | 7 | root | localhost | NULL | Sleep | 2825 | | NULL | | 12 | root | localhost | NULL | Query | 0 | starting | show processlist | +----+------+-----------+-------+---------+------+----------+------------------+ 4 rows in set (0.04 sec)
在Linux终端输入 mysqladmin -uroot -pAdmin@123456 extended-status 或者进入MySQL输入命令 show status; //查询全部 show status like '%下面变量%'; //查询符合条件的 Aborted_clients #由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。 Aborted_connects #尝试已经失败的MySQL服务器的连接的次数。 Connections #试图连接MySQL服务器的次数。 Created_tmp_tables #当执行语句时,已经被创造了的隐含临时表的数量。 Delayed_insert_threads #正在使用的延迟插入处理器线程的数量。 Delayed_writes #用INSERT DELAYED写入的行数。 Delayed_errors #用INSERT DELAYED写入的发生某些错误(可能重复键值)的行数。 Flush_commands #执行FLUSH命令的次数。 Binlog_cache_disk_use #表示因为我们binlog_cache_size设计的内存不足导致缓存二进制日志用到了临时文件的次数(做监控) Binlog_cache_use #表示 用binlog_cache_size缓存的次数 Com_xxx #语句计数变量表示每个xxx 语句执行的次数。每类语句有一个状态变量。例如,Com_delete和Com_insert分别统计DELETE 和INSERT语句执行的次数。 Handler_delete #请求从一张表中删除行的次数。(监控) Handler_read_first #请求读入表中第一行的次数。 Handler_read_key #请求数字基于键读行。 Handler_read_next #请求读入基于一个键的一行的次数。 Handler_read_rnd #请求读入基于一个固定位置的一行的次数。 Handler_update #请求更新表中一行的次数。(监控) Handler_write #请求向表中插入一行的次数。(监控) Key_blocks_used #用于关键字缓存的块的数量。 Key_read_requests #请求从缓存读入一个键值的次数。 Key_reads #从磁盘物理读入一个键值的次数。(监控) Key_write_requests #请求将一个关键字块写入缓存次数。 Key_writes #将一个键值块物理写入磁盘的次数(监控) Max_used_connections #同时使用的连接的最大数目。(监控) Not_flushed_key_blocks #在键缓存中已经改变但是还没被清空到磁盘上的键块。 Not_flushed_delayed_rows #在INSERT DELAY队列中等待写入的行的数量。 Open_tables #打开表的数量。(监控) Open_files #打开文件的数量。(监控) Open_streams #打开流的数量(主要用于日志记载) Opened_tables #已经打开的表的数量 Questions #发往服务器的查询的数量。(监控) Slow_queries #要花超过long_query_time时间的查询数量。 Threads_connected #当前打开的连接的数量。(监控) Threads_running #不在睡眠的线程数量。(监控) Uptime #服务器工作了多少秒。(监控)