Ваш тест $ 2 ~ /./
всегда верен, за исключением случая, когда $ 2
является пустой строкой, то есть когда в строке есть 0 или 1 поле. Вам следует попробовать $ 2 ~ /^.$/
.
Вы также можете объединить grep и awk в один:
awk '/^.M/ {print ($2 ~ /^.$/ ? $3 : $2)}'
Если ваш файл my.cnf (обычно в папке / etc / mysql /) правильно настроен с помощью
socket = / var / lib / mysql / mysql.sock
, вы можете проверить, работает ли mysql с следующая команда:
mysqladmin -u root -p status
попробуйте изменить ваши права доступа к папке mysql. Если вы работаете локально, вы можете попробовать:
sudo chmod -R 755 / var / lib / mysql /