MySQL版本:5.7.23
在閑逛mysql時(shí)發(fā)現(xiàn)mysql庫(kù)的user表下有兩個(gè)賬戶比較特別:
mysql.session和mysql.sys
mysql> use mysql;
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| 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 |
+---------------------------+
31 rows in set (0.00 sec)
查一下user表里面都有哪些賬戶:
mysql> select user, host from user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
mysql.sys@localhost:
用于 sys schema中對(duì)象的定義。使用 mysql.sys 用戶可避免DBA重命名或者刪除root用戶時(shí)發(fā)生的問(wèn)題。該用戶已被鎖定,客戶端無(wú)法連接。
mysql.session@localhost:
插件內(nèi)部使用來(lái)訪問(wèn)服務(wù)器。該用戶已被鎖定,客戶端無(wú)法連接。root@localhost:
這個(gè)就是root賬號(hào)啦!其用于管理。該用戶擁有所有權(quán)限,可執(zhí)行任何操作。嚴(yán)格來(lái)說(shuō),這個(gè)賬號(hào)不應(yīng)該被保留。root是MySQL的特權(quán)賬號(hào),這個(gè)眾所周知,也帶來(lái)安全隱患。建議將root賬號(hào)禁用或者刪除,新建一個(gè)特權(quán)賬號(hào)用于管理。
在MySQL 5.6以前,我們通過(guò)show processlist\G命令查看系統(tǒng)中正在運(yùn)行的所有進(jìn)程:
mysql> show processlist;
+----+------+-----------+-------+---------+------+----------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+-------+---------+------+----------+------------------+
| 6 | root | localhost | mysql | Query | 0 | starting | show processlist |
+----+------+-----------+-------+---------+------+----------+------------------+
1 row in set (0.00 sec)
從5.7開始,我們又可以通過(guò)sys.session表來(lái)查看系統(tǒng)正在運(yùn)行的所有進(jìn)程,而且該表中的記錄相processlist比較完善:
mysql> select * from sys.session\G
*************************** 1. row ***************************
thd_id: 31
conn_id: 6
user: NULL
db: mysql
command: Query
state: Sending data
time: 0
current_statement: select * from sys.session
statement_latency: 1.79 ms
progress: NULL
lock_latency: 0 ps
rows_examined: 0
rows_sent: 0
rows_affected: 0
tmp_tables: 4
tmp_disk_tables: 1
full_scan: YES
last_statement: NULL
last_statement_latency: NULL
current_memory: 0 bytes
last_wait: NULL
last_wait_latency: NULL
source: NULL
trx_latency: NULL
trx_state: NULL
trx_autocommit: NULL
pid: 4612
program_name: mysql
1 row in set (0.06 sec)
很顯然,select * from sys.session能得到更多的信息。
我這個(gè)是用
root賬戶在mysql庫(kù)下執(zhí)行的命令,當(dāng)然你也可以去sys庫(kù)查看;
#表太多了,只寫出我們要的表
mysql> use sys;
Database changed
mysql> show tables;
+-----------------------------------------------+
| Tables_in_sys |
+-----------------------------------------------+
|...... |
| processlist |
|...... |
+-----------------------------------------------+
然后查看該表中的信息:
#數(shù)據(jù)行太多了,囧……
#只顯示一行吧
mysql> select * from processlist\G
*************************** 1. row ***************************
thd_id: 1
conn_id: NULL
user: sql/main
db: NULL
command: NULL
state: NULL
time: 3262
current_statement: NULL
statement_latency: NULL
progress: NULL
lock_latency: NULL
rows_examined: NULL
rows_sent: NULL
rows_affected: NULL
tmp_tables: NULL
tmp_disk_tables: NULL
full_scan: NO
last_statement: NULL
last_statement_latency: NULL
current_memory: 0 bytes
last_wait: NULL
last_wait_latency: NULL
source: NULL
trx_latency: NULL
trx_state: NULL
trx_autocommit: NULL
pid: NULL
program_name: NULL
mysql> select * from session\G
*************************** 1. row ***************************
thd_id: 31
conn_id: 6
user: NULL
db: sys
command: Query
state: Sending data
time: 0
current_statement: select * from session
statement_latency: 1.31 ms
progress: NULL
lock_latency: 0 ps
rows_examined: 0
rows_sent: 0
rows_affected: 0
tmp_tables: 4
tmp_disk_tables: 1
full_scan: YES
last_statement: NULL
last_statement_latency: NULL
current_memory: 0 bytes
last_wait: NULL
last_wait_latency: NULL
source: NULL
trx_latency: NULL
trx_state: NULL
trx_autocommit: NULL
pid: 4612
program_name: mysql
1 row in set (0.05 sec)
文章中部分內(nèi)容引用自
http://www.mamicode.com/info-detail-1301870.html
http://www.dbhelp.net/2017/11/29/mysql-5-7-%E6%96%B0%E5%A2%9E%E9%BB%98%E8%AE%A4%E8%B4%A6%E5%8F%B7-mysql-session%E5%92%8Cmysql-sys.html