Можно ли увидеть, какие команды SQL выполняются на моей машине CentOS?

Можно ли увидеть, какие команды SQL выполняются на моей машине CentOS?

Я купил программу, которая работает на моей машине CentOS. Она написана на PHP. Она использует базу данных MYSQL.

Одной из функций программы является регистрация новых пользователей. Она использует SQL-запрос для добавления пользователей. Я хочу написать программу на Python, которая также может добавлять пользователей в эту базу данных, но я не знаю, какие свойства и таблицы она добавляет (это довольно большая база данных).

Можно ли как-то отслеживать, какие SQL-запросы эта программа отправляет в MYSQL?

решение1

Есть два способа сделать это: более простой (и, возможно, недостаточно хороший) и более сложный, который на 100% даст вам то, что вы ищете.

  1. Проще всего просто искать запросы по мере их выполнения с помощью SHOW FULL PROCESSLISTкоманды. Это покажет вам запросы, но если действие (SQL-запрос, который вы ищете) выполняется редко, вам придется долго ждать и часто выполнять команду выше, чтобы получить желаемый результат. Есть и лучший способ.

  2. Запустите MySQL с включенным ведением журнала, и тогда вы сможете увидеть все SQL-запросы после перезапуска сервера MySQL. Проблема в том, что файл журнала может быть очень большим, и для неопытного пользователя может потребоваться много времени, чтобы найти то, что вы ищете, но этот подход, как правило, лучше. Вариант прост:

mysqld --log=name_of_log_file.log

Это так просто.

Только одно предупреждение: когда вы найдете то, что искали, перезапустите MySQL, но на этот раз с отключенным ведением журнала, так как это ускорит работу базы данных и не займет дискового пространства на вашем сервере.

решение2

Чтобы увидеть, какие запросы MySQL выполняются на любой платформе, имеющей mysql.

Запрос MySQL выглядит следующим образом:

  • SHOW FULL PROCESSLISTдля получения подробной информации.
  • SHOW PROCESSLISTдля обрабатываемых в настоящее время запросов.

Открыть # mysqlв терминале.

mysql> SHOW FULL PROCESSLIST;

mysql> SHOW PROCESSLIST;

для получения дополнительной документации см.показать-список процессов.

Связанный контент