В основном в Mysql, эти типы идентификаторов используются в запросах `
, "
, '
и ()
.
"
или '
используйте для включения строки как значения "26-01-2014 00:00:00"
или '26-01-2014 00:00:00'
. Этот идентификатор используется только для строковой неагрегатной функции, такой как now() or sum ,max
и т. Д. `
использовать для включения таблицы таблицы или таблицы, например. выберите column_name
из table_name
, где id = '2' ()
используются только для того, чтобы просто заключить части запроса, например. выберите column_name
из table_name
где (id = '2' и gender = 'male') или name = 'rakesh'. Похоже, что у вас заканчиваются эфемерные порты . Чтобы проверить, используйте команду netstat
и найдите несколько тысяч портов в состоянии TIME_WAIT
.
В Mac OS X используется эфемер по умолчанию диапазон портов составляет от 49152 до 65535, в общей сложности 16384 порта. Вы можете проверить это с помощью команды sysctl
:
$ sysctl net.inet.ip.portrange.first net.inet.ip.portrange.last net.inet.ip.portrange.first: 49152 net.inet.ip.portrange.last: 65535
Как только вы закончите эфемерные порты, вам, как правило, нужно подождать, пока истечет срок действия TIME_WAIT
( 2 * максимальное время жизни сегмента), пока вы не сможете повторно использовать определенный номер порта. Вы можете удвоить количество портов, изменив диапазон, чтобы начать с 32768, что по умолчанию используется для Linux и Solaris. (Максимальный номер порта - 65535, поэтому вы не можете увеличить высокий уровень.)
$ sudo sysctl -w net.inet.ip.portrange.first=32768 net.inet.ip.portrange.first: 49152 -> 32768
Обратите внимание, что официальный диапазон , обозначенный IANA , составляет 49152 - 65535, а некоторые брандмауэры могут предположим, что динамически назначенные порты попадают в этот диапазон. Возможно, вам понадобится перенастроить ваш брандмауэр, чтобы использовать больший диапазон вне вашей локальной сети.
Также можно сократить максимальное время жизни сегмента (sysctl net.inet.tcp.msl
в Mac OS X), что контролирует продолжительность состояния TIME_WAIT
, но это опасно, так как это может привести к смешению старых соединений с более новыми, которые используют один и тот же номер порта. Существуют также некоторые трюки, связанные с привязкой к конкретным портам с опцией SO_REUSEADDR
или закрытием с помощью опции SO_LINGER
, но также могут быть смешаны старые и новые соединения, поэтому обычно считаются плохими идеями.
Вместо увеличения количества портов измените длину TIME_WAIT
в Mac OS X.
Это работает только в разработке, но теперь я могу спросить ab
, сколько запросов
Установите время ожидания по умолчанию на 1000 мс следующим образом:
$ sudo sysctl -w net.inet.tcp.msl=1000
net.inet.tcp.msl: 15000 -> 1000
Страница brianp.net, указанная в другом ответе, больше не доступна. Вы можете получить его из интернет-архива .