mysql для не печати выбирает вывод к терминалу

Мне удалось решить это, вот решение в случае, если оно помогает любому:

netstat -an | grep :80 | grep SYN_RECV

Это покажет весь IP, которые находятся в этом нападении, просто блокируют этот список в Вашем брандмауэре, и нападение не будет иметь никакого эффекта. (Я использую APF, таким образом, это было просто apf-d для каждого IP),

Вам, вероятно, придется выполнить эту команду несколько раз после блокирования IP, поскольку я думаю, что netstat ограничен на сумму IP, который это показывает, я должен был выполнить его несколько раз, прежде чем команда не показала IP.

7
задан 3 February 2012 в 17:24
4 ответа

Вы можете перенаправить вывод любой команды - не только MySQL - с помощью операторов перенаправления ввода-вывода вашей оболочки. Например, в bash:

$ mysql mydb < commands.sql > /dev/null 2>&1

Это запустит клиент командной строки MySQL, подключит его к «mydb» в локальной системе (при условии, что у вас есть доступ), прочитает команды SQL из файла commands.sql и выгрузите весь вывод в / dev / null .

Если вы хотите сохранить вывод для просмотра после факта, вы можете перенаправить его в файл, а не в / dev / null :

$ mysql mydb < commands.sql > output.txt 2>&1

2> & 1 перенаправляет stderr , а также stdout . Если вы хотите увидеть какие-либо ошибки на своем терминале, вы должны перенаправить только stdout :

$ mysql mydb < commands.sql > /dev/null
8
ответ дан 2 December 2019 в 23:17
  1. mysql-client:

     mysql> pager> / dev / null
    PAGER установлен на '> / dev / null'
    mysql> выберите 1;
    1 ряд в комплекте (0,00 сек)
    
    mysql> \ q
    до свидания
    

    Таким образом, результат запросов не печатается, только счетчик строк - информация о времени.

  2. Перенаправление ввода-вывода в оболочке

     user @ host $ mysql -e 'select 1'> / dev / null
    пользователь @ host $
    
10
ответ дан 2 December 2019 в 23:17

Это работает на установках mysql в Unix. Поскольку Windows не имеет ни / dev / null, ни команды пейджера в установке mysql, она не будет работать с mysql, установленным в Windows.

В Windows Mysql (также в Unix) вы можете использовать SELECT 1 INTO OUTFILE 'file_name' или установите переменную и используйте SELECT 1 INTO @var; Ознакомьтесь с документацией здесь: http://dev.mysql.com/doc/refman/5.0/en/select.html

Имейте в виду, что вы не можете переопределить аутфайл, поэтому INTO Outfile не будет работать для повторяющиеся выборки.

0
ответ дан 2 December 2019 в 23:17

Если целью является разогрев кеша, вы также можете сделать что-то вроде:

select max (concat (col1, col2)) from mytable where ...

The движок вынужден читать реальные страницы для вычисления максимума (в любом случае с небольшими накладными расходами по сравнению с вводом-выводом)

Обратите внимание, что если вы выбираете только столбцы из индекса, только индекс красный, нет необходимости переходить к самой таблице («указатель обложки»).
В некоторых случаях может потребоваться именно это (загрузить в кеш только индекс)

1
ответ дан 2 December 2019 в 23:17

Теги

Похожие вопросы