У вас есть рабочий сервер базы данных, и вы не можете включить ведение журнала запросов … так как вы видите, как выполняются запросы к базе данных?
Ответ: используйте модифицированный сетевой анализатор для анализа пакетов MySQL и их декодирования. Вам придется немного скомпилировать, но это того стоит. Обратите внимание, что это обычно не работает для локальных подключений, хотя вы можете попробовать.
Во-первых, вам нужно установить libpcap-dev, библиотеку разработки, которая позволяет приложению анализировать сетевые пакеты.
sudo apt-get установить libpcap-dev
Теперь давайте создадим каталог, загрузим исходный код и скомпилируем его
mkdir mysqlsniffer
cd mysqlsniffer
wget hackmysql.com/code/mysqlsniffer.tgz
tar xvfz mysqlsniffer.tgz
gcc -O2 -lpcap -o mysqlsniffer mysqlsniffer.c packet_handlers.c misc.c
На данный момент у нас есть новый блестящий исполняемый файл с именем mysqlsniffer в нашей директории с исходным кодом. Вы можете скопировать его куда угодно (где-то в пути будет полезно)
Чтобы запустить mysqlsniffer, вам нужно указать сетевой интерфейс, который прослушивает MySQL. Для меня это eth0.
sudo/path/to/mysqlsniffer eth0
Множество вещей начинает пролетать мимо… давайте немного отфильтруем их, чтобы мы могли просто получать запросы, а не все лишние данные.
$ sudo/path/to/mysqlsniffer –no-mysql-hdrs eth0 | grep COM_QUERY
192.168.73.1.2622> сервер: COM_QUERY: SELECT @@ sql_mode
192.168.73.1.2622> сервер: COM_QUERY: SET SESSION sql_mode = ”
192.168.73.1.2622> сервер: COM_QUERY: SET NAMES utf8
192.168.73.1.1636> сервер: COM_QUERY: SELECT @@ SQL_MODE
192.168.73.1.1636> сервер: COM_QUERY: ПОКАЗАТЬ ПОЛНЫЕ КОЛОННЫ ИЗ `db2842_howto“wp_users`
Ах, теперь мы … всякая информация о запросах, без перезапуска MySQL.
Вот полные параметры для команды:
Использование: mysqlsniffer [ОПЦИИ] ИНТЕРФЕЙС
ОПЦИИ:
–port N Прослушать MySQL на порту номер N (по умолчанию 3306)
–verbose Показать дополнительную информацию о пакете
–tcp-ctrl Показать TCP-пакеты управления (SYN, FIN, RST, ACK )
–net-hdrs Показать основные значения заголовков IP и TCP
–no-mysql-hdrs Не отображать заголовок MySQL (идентификатор и длина пакета)
–state Показать состояние
– v40 Сервер MySQL версии 4.0
–dump Дампить все пакеты в шестнадцатеричном виде
–help Распечатать
Оригинальный исходный код и дополнительную информацию можно найти по адресу:
http://hackmysql.com/mysqlsniffer.
Если вы работаете на сервере разработки, было бы проще просто включить ведение журнала запросов.