Архив рубрики: Linux

Наработки и статьи по работе с Linux

PHP Fatal error: Uncaught Error: Call to undefined function GuzzleHttp

Устранилось установкой php модуля composer, который потянул за собой еще ряд других.

# pkg install php73-composer
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 6 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	php73-composer: 1.10.8
	php73-ctype: 7.3.20
	php73-filter: 7.3.20
	php73-intl: 7.3.20
	php73-phar: 7.3.20

The server requested authentication method unknown to the client

Возникло при переходе с Mysql 5.7 на 8.0 со связкой php 7.2 Гугл говорит, что это потому что в 7.2 еще не завезли новую усиленную авторизацию в mysqli. Временное решение, пока нет возможности обновить до php 7.3 — сделать авторизацию «по старому» :

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password
BY 'password';

Восстановление только одной таблицы из бекапа MySQL

Довольно частая ситуация: есть бекап базы. Развертывать его целиком чтобы посмотреть данные одной таблицы? А если он большой это может занять продолжительное время. Есть вариант с использованием sed:

sed -n -e '/CREATE TABLE.*`usbox_services`/,/CREATE TABLE/p' 2020-07-07.sql  > usbox_services.sql

В результате выполнения будет сформирован файл содержащий только таблицу usbox_services. Ну а далее его уже заливаем стандартно..

FreeBSD: user ‘pavel’ disappeared during update при попытке добавить пользователя

При попытке создания нового пользователя во FreeBSD стала выходить ошибка вида:

user 'pavel' disappeared during update

Как оказалось это результат рассинхронизации баз данных пользователей в /etc/passwd и /etc/master.passwd

Смутно помню, что в /etc/passwd хранятся логины пользователей, с паролями замененными на *, а в /etc/master.passwd храняться непосредственно сами зашифрованные пароли. /etc/master.passwd доступен только root.

Решение:

/usr/sbin/pwd_mkdb -p /etc/master.passwd

SUDO без пароля во FreeBSD

В одной из задач которую делаю при помощи ansible понадобилось после выполнения всех тасков, перезапустить сервис. А так-как ansible работает под пользователем, то сервис соответственно пере стартовать не дает. Возможно есть и штатные средства для обхода этого момента. Но мне не нагуглилось сразу. Потому решил сделать перезапуск cron при помощи sudo:

sudo service cron restart

Один нюанс, чтобы не запрашивался пароль, поправим файл /usr/local/etc/sudoers, а именно раскомментируем строку:

## Same thing without a password
 %wheel ALL=(ALL) NOPASSWD: ALL