GNU/Linux >> Tutoriels Linux >  >> Linux

Quel est le but de "l'utilisateur système" dans la réplication MySQL

Cet article vise à comprendre pourquoi "l'utilisateur système" est vu dans SHOW PROCESSLIST et la vue information_schema.PROCESSLIST sur les esclaves de réplication.

L'utilisateur système n'est pas un utilisateur réel et est utilisé à des fins d'affichage uniquement pour indiquer que c'est le système qui exécute la tâche. Il est utilisé par les threads d'E/S et SQL (threads de connexion et d'application) sur un esclave de réplication. Ces threads sont gérés par le système et non par un utilisateur de connexion.

L'utilisateur du système peut par exemple être vu dans la sortie de SHOW PROCESSLIST ou le information_schema.PROCESSLIST afficher :

mysql> SHOW PROCESSLIST;
+----+-----------------+-----------------+--------------------+---------+-------+--------------------------------------------------------+------------------+
| Id | User            | Host            | db                 | Command | Time  | State                                                  | Info             |
+----+-----------------+-----------------+--------------------+---------+-------+--------------------------------------------------------+------------------+
|  2 | system user     |                 | NULL               | Connect | 10103 | Waiting for master to send event                       | NULL             |
|  3 | event_scheduler | localhost       | NULL               | Daemon  | 10102 | Waiting on empty queue                                 | NULL             |
|  8 | root            | localhost:33356 | performance_schema | Query   |     0 | starting                                               | SHOW PROCESSLIST |
| 10 | system user     |                 | NULL               | Connect |     0 | Slave has read all relay log; waiting for more updates | NULL             |
| 11 | system user     |                 | NULL               | Connect |     0 | System lock                                            | NULL             |
| 12 | system user     |                 | NULL               | Connect |     0 | System lock                                            | NULL             |
| 13 | system user     |                 | NULL               | Connect |     0 | System lock                                            | NULL             |
| 14 | system user     |                 | NULL               | Connect |     0 | System lock                                            | NULL             |
| 15 | system user     |                 | NULL               | Connect |     0 | Waiting for an event from Coordinator                  | NULL             |
| 16 | system user     |                 | NULL               | Connect |     0 | Waiting for an event from Coordinator                  | NULL             |
| 17 | system user     |                 | NULL               | Connect |     0 | Waiting for an event from Coordinator                  | NULL             |
| 18 | system user     |                 | NULL               | Connect |     0 | Waiting for an event from Coordinator                  | NULL             |
+----+-----------------+-----------------+--------------------+---------+-------+--------------------------------------------------------+------------------+
12 rows in set (0.00 sec)
mysql> SELECT * FROM information_schema.PROCESSLIST;
+----+-----------------+-----------------+--------------------+---------+-------+---------------------------------------------+----------------------------------------------+
| ID | USER            | HOST            | DB                 | COMMAND | TIME  | STATE                                       | INFO                                         |
+----+-----------------+-----------------+--------------------+---------+-------+---------------------------------------------+----------------------------------------------+
|  3 | event_scheduler | localhost       | NULL               | Daemon  | 10173 | Waiting on empty queue                      | NULL                                         |
| 12 | system user     |                 | NULL               | Connect |     3 | System lock                                 | NULL                                         |
| 14 | system user     |                 | NULL               | Connect |     3 | Waiting for an event from Coordinator       | NULL                                         |
| 13 | system user     |                 | NULL               | Connect |     3 | System lock                                 | NULL                                         |
|  2 | system user     |                 | NULL               | Connect | 10174 | Waiting for master to send event            | NULL                                         |
|  8 | root            | localhost:33356 | performance_schema | Query   |     0 | executing                                   | SELECT * FROM information_schema.processlist |
| 16 | system user     |                 | NULL               | Connect |     3 | Waiting for an event from Coordinator       | NULL                                         |
| 15 | system user     |                 | NULL               | Connect |     3 | Waiting for an event from Coordinator       | NULL                                         |
| 17 | system user     |                 | NULL               | Connect |     3 | Waiting for an event from Coordinator       | NULL                                         |
| 18 | system user     |                 | NULL               | Connect |     3 | Waiting for an event from Coordinator       | NULL                                         |
| 10 | system user     |                 | NULL               | Connect |     0 | Waiting for dependent transaction to commit | NULL                                         |
| 11 | system user     |                 | NULL               | Connect |     3 | Waiting for an event from Coordinator       | NULL                                         |
+----+-----------------+-----------------+--------------------+---------+-------+---------------------------------------------+----------------------------------------------+
12 rows in set (0.00 sec)

Le schéma de performance n'affichera pas "utilisateur système" mais plutôt root@localhost pour ces connexions. Le schéma sys affichera le nom du thread à la place. Par exemple, en utilisant la table performance_schema.threads et la vue sys.session :

mysql> SELECT THREAD_ID, NAME, PROCESSLIST_ID, PROCESSLIST_USER, PROCESSLIST_HOST, PROCESSLIST_TIME, PROCESSLIST_STATE FROM performance_schema.threads WHERE TYPE = 'foreground';
+-----------+--------------------------------------+----------------+------------------+------------------+------------------+--------------------------------------------------------+
| THREAD_ID | NAME                                 | PROCESSLIST_ID | PROCESSLIST_USER | PROCESSLIST_HOST | PROCESSLIST_TIME | PROCESSLIST_STATE                                      |
+-----------+--------------------------------------+----------------+------------------+------------------+------------------+--------------------------------------------------------+
|        77 | thread/sql/slave_io                  |              2 | NULL             | NULL             |            10111 | Waiting for master to send event                       |
|        78 | thread/sql/event_scheduler           |              3 | NULL             | NULL             |             NULL | Waiting on empty queue                                 |
|        81 | thread/sql/compress_gtid_table       |              4 | NULL             | NULL             |            10110 | Suspending                                             |
|        83 | thread/thread_pool/tp_one_connection |              8 | root             | localhost        |                0 | Sending data                                           |
|        85 | thread/sql/slave_sql                 |             10 | root             | localhost        |                0 | Slave has read all relay log; waiting for more updates |
|        86 | thread/sql/slave_worker              |             11 | root             | localhost        |                0 | System lock                                            |
|        87 | thread/sql/slave_worker              |             12 | root             | localhost        |                0 | System lock                                            |
|        88 | thread/sql/slave_worker              |             13 | root             | localhost        |                0 | System lock                                            |
|        89 | thread/sql/slave_worker              |             14 | root             | localhost        |                0 | Waiting for an event from Coordinator                  |
|        90 | thread/sql/slave_worker              |             15 | root             | localhost        |                0 | Waiting for an event from Coordinator                  |
|        91 | thread/sql/slave_worker              |             16 | root             | localhost        |                0 | Waiting for an event from Coordinator                  |
|        92 | thread/sql/slave_worker              |             17 | root             | localhost        |                0 | Waiting for an event from Coordinator                  |
|        93 | thread/sql/slave_worker              |             18 | root             | localhost        |                0 | Waiting for an event from Coordinator                  |
+-----------+--------------------------------------+----------------+------------------+------------------+------------------+--------------------------------------------------------+
13 rows in set (0.00 sec)
mysql> SELECT thd_id, conn_id, user, state, time FROM sys.session;
+--------+---------+---------------------+---------------------------------------------+-------+
| thd_id | conn_id | user                | state                                       | time  |
+--------+---------+---------------------+---------------------------------------------+-------+
|     77 |       2 | sql/slave_io        | Waiting for master to send event            | 10378 |
|     83 |       8 | root@localhost      | Sending data                                |     0 |
|     86 |      11 | sql/slave_worker    | System lock                                 |     0 |
|     87 |      12 | sql/slave_worker    | System lock                                 |     0 |
|     88 |      13 | sql/slave_worker    | Waiting for an event from Coordinator       |     0 |
|     89 |      14 | sql/slave_worker    | Waiting for an event from Coordinator       |     0 |
|     90 |      15 | sql/slave_worker    | System lock                                 |     0 |
|     91 |      16 | sql/slave_worker    | Waiting for an event from Coordinator       |     0 |
|     92 |      17 | sql/slave_worker    | Waiting for an event from Coordinator       |     0 |
|     93 |      18 | sql/slave_worker    | Waiting for an event from Coordinator       |     0 |
|     85 |      10 | sql/slave_sql       | Waiting for dependent transaction to commit |     0 |
|     78 |       3 | sql/event_scheduler | Waiting on empty queue                      |  NULL |
+--------+---------+---------------------+---------------------------------------------+-------+
12 rows in set (0.42 sec)
Remarque :Il est impossible de se connecter en tant qu'« utilisateur système » - il est strictement interne uniquement. Que sont les comptes d'utilisateurs réservés dans MySQL
Quel est le but de l'utilisateur « mysql.sys@localhost »


Linux
  1. Quel est le niveau d'exécution actuel du système Linux ?

  2. Détecter le système d'initialisation à l'aide du shell ?

  3. Quelle est la différence entre un utilisateur normal et un utilisateur système ?

  4. À quoi sert le Colon Builtin ':' ?

  5. Configurer le serveur MySQL sur le système d'exploitation Ubuntu

Les effets de l'ajout d'utilisateurs à un système Linux

Useradd vs Adduser :quelle est la différence ?

Quel est le but de l'utilisateur "mysql.sys@localhost"

Quel est le mot de passe root par défaut pour MySQL 5.7

Quel est le but de cd ` (backtick) ?

Quel est le but du répertoire setgid ?