Да, как сказал Гвидо Симоне, потому что другой процесс прослушивает тот же порт. Если вы находитесь в Ubuntu, вы можете просто убить этот процесс, выдав команду sudo kill $(sudo lsof -t -i:[port number])
ex: sudo kill $(sudo lsof -t -i:8080)
Но как только это не сработало для меня. я дал команду
$ lsof -i:[port]
и ничего не показывает.
Я проверил контейнеры докеров с помощью команды docker ps -a
, но не из них. Все контейнеры остановились (но я помню, я остановил один контейнер, который использовался один и тот же порт несколько минут назад.). что докер не является причиной, я останавливаю весь процесс докера с помощью команды sudo service docker stop
и повторю попытку. Удивительно, что затмение не показало ошибки в то время. Он отлично работает с моей программой.
Надеюсь, мой опыт поможет кому-то.
Использование Filter
- элегантное решение (см. Ответ Гордона Линоффа).
. Чтобы быть более совместимым со многими базами данных, Ян также может написать:
Я думаю, это то, что вы хотите:
create view myview as
select ownername,
count(*) filter (where status = 1) as cnt_status_1,
sum(length) filter (where status = 1) as len_status_1,
count(*) filter (where status = 2) as cnt_status_2,
sum(length) filter (where status = 2) as len_status_2,
. . . -- continue for each status
count(*) as cnt,
sum(length) as length
from mytable
group by ownername;