[1045] Access denied for user — Ошибка подключения к БД из PhpStorm’a

Оказывается я уже полгода не писал постов в блог и нужно бы освежить. Проекты идут один за одним и время проходит незаметно. Ну да ладно, перейдем к проблеме и способу её решения.

Сегодня обновлял окружение разработки для одного из поддерживаемых проектов. Одним из изменений было обновление версии MySql с 5.7 на 8. Все локальное окружение, как обычно, крутится на Докере. Обновил docker-compose.yml, пересобрал проект, запустил и при соединении PhpStorm’a к БД увидел вот такую ошибку:

... [1045] Access denied for user '...'@'xxx.xxx.xxx.xxx' ...

После проверки правильности логинов, паролей и остальных параметров подключения, проблема осталась, пересборка контейнеров с очищением всех кешей тоже не помогла. Решение оказалось простым, я остановил Докер, зачистил директорию с данным MySql-контейнера (путь до этой директории лежит в параметре volumes) и запустил Докер заново со сборкой: docker-compose up —build, после этого все работало нормально.

Удаление файлов из git

Удалить файлы из git’a с сохранением в файловой системе:

git rm --cached my_file.txt
git rm --cached -r my_folder_name

Удалить директорию из git’a без сохранения в файловой системе:

git rm file.txt
git rm -r my_folder_name

Чтобы лишние файлы не попадали в репозиторий добавляйте их в .gitignore.

Управление множеством ssh-ключей с паролями (ключевыми фразами или passphrase) через keychain

Наличие множества ssh-ключей и необходимости их использовать для работы доставляет немало проблем. Их нужно где-то хранить, указывать каждый раз при использовании соответствующий ключ, запоминать ключевые фразы и вводить их (passphrase) при использовании. Ситуацию спасают возможность настройки ssh и утилита keychain (или её аналоги).

(далее…)

Немного о тестировании в Yii2

В данное время покрываю тестами проект-долгострой на Yii2. Возможно кому-то пригодятся заметки.

(далее…)

Docker: No releases available for package «pecl.php.net/redis»

Сегодня встретилась вот такая ошибка для пакетов загружаемых через PECL. Хоть в сообщении и написано «Нет доступных релизов», но они были на сервере. Ошибка странная и почему она возникла сказать не могу. Все указывает на сетевые проблемы. Если простыми словами, то мой компьютер не мог нормально добраться до компьютера на котором находятся требуемые пакеты. Проблему решить удалось, об этом ниже.

(далее…)

Объединение и сжатие стилей (css) и скриптов (js) на Yii2

Пару недель назад мне понадобилось обновить верстку на одном из своих старых сайтов. Он был создан в году 16-м или 17-м, точно уже не помню. Новую верстку успешно адаптировал и встал вопрос оптимизации css и js, ранее они были в обычном виде — без объединения и минификации. Было решено воспользоваться примером из документации. Как это вышло без Vite, Gulp‘a, Laravel Mix‘a и подобных инструментов покажу ниже на простом примере.

(далее…)

Мониторинг ресурсов в Линукс

Как и в других операционных системах, в Линуксе иногда нужно следить за количеством свободного пространства на диске, использованной оперативной памяти, списком активных программ и открытыми файлами. Для всего этого существует ряд утилит — ps, top, lsof, free, df и du.

(далее…)

Работа с архивами в Линуксе

В данной заметке мы рассмотрим основные архиваторы Линукса — zip, tar, gzip и bzip2.

(далее…)

Особенности консоли Линукс

В данной заметке собраны интересные особенности консоли Линукс и некоторые полезные команды, которыми часто пренебрегают.

(далее…)

Ошибка: Unable to find the wrapper «https»

Если PHP выдает подобную ошибку:

PHP Warning:  copy(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in Command line code on line ...

То, возможно, у вас отсутствует модуль PHP под наименованием «openssl». Для его установки достаточно ввести подобную команду:

sudo apt-get install php8.1-openssl

Убедитесь в наличии пакета «php8.1-openssl». Если он отсутствует, то попробуйте найти подходящий через «apt-cache search XXX». Обязательно устанавливайте модуль для текущей используемой версии PHP, в примере выше используется 8.1.