Пароль в MySQL 5.7

Сегодня поставил на свой домашний компьютер mysql сервер версии 5.7. Но при первом подключении мой любимый Seaquel Pro выдал ошибку:

ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.

readmore

Интересное про иконки и шрифты

Сейчас все идут к тому, что бы иконки были векторные, можно даже на шрифтах. Есть несколько готовых шрифтовых пакетов, есть наборы иконок, а так же есть отличная программа в браузере, которая позволяет бесплатно создавать свои шрифты.

  1. Сравниваем самые популярные шрифты с иконками - http://tagliala.github.io/vectoriconsroundup/
  2. Невероятные сервис для того, что бы приготовить ваш собственный набор иконок - https://icomoon.io/app

Права на сервере

Извечная проблема для меня была какие права ставить на файлы и папки на сервере. 

Вот собственно ответ - на папки 755 и 644 на файлы. Ставится простыми командами:

find ./ -type d -exec chmod 755 {} +
find ./ -type f -exec chmod 644 {} +

Запускаем виртуальную машину, застрявшую на grub

Значит ситуация такая: на сервере стоит виртуальная машина через vagrant, она запускается через “vagrant up”, но до конца процесс запуска не происходит, в логе много строчек

default: Warning: Connection timeout. Retrying...

Проблема в том, что в запускаемой машине grub почему то не выбирает автоматически то, что нужно запустить. На машине с gui - все просто, говорим: v.gui = true в свойствах:

config.vm.provider "virtualbox" do |v|
    v.gui = true
end

А на удаленном сервере не все так просто. Но оказалось всё еще проще :) Запускаем машину - она на самом деле запущена, хоть и не до конца. Машина ждет нажатия клавиши выбора ОС. Сделать это весьма просто - запускаем в соседним окне команду, что бы узнать ID виртуальной машины:

vboxmanage list runningvms

оно нам выдало примерно следующее:

"projects_1234567890" {5cxxxx-cxxx-4xxx-8xxx-5xxxxxxxxxx}

Берем отсюда ID (первая часть в кавычках) машины и просто отправляем туда нажатие клавиши:

vboxmanage controlvm projects_1234567890 keyboardputscancode 1c

Вуаля, через совсем чуть чуть времени, можно спокойно подключаться :)

PHP: Json endcode & decode

Меня всегда путали 2 эти функции. Во1:

Decode - декодирует строку в массив или объект.

Encode - наоборот кодирует массив, объект или другую сущность в json-строку. Поэтому когда отправляем данные, используем ENCODE.

Далее. При отправке encode хорошо бы включать некоторые постоянные:

JSON_PRETTY_PRINT (integer)
Использовать пробельные символы в возвращаемых данных для их форматирования. Доступна начиная с PHP 5.4.0.
JSON_UNESCAPED_UNICODE (integer)
Не кодировать многобайтные символы Unicod

Итого:

$return = json_encode(array(‘message’ => “), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

Архивация

Дубль два: Копипаста из http://web.izjum.com/ssh-archivation

Как заархивировать файлы по SSH?

Часто такая необходимость возникает, когда нужно сделать архивную копию (Backup) сайта на сервере.
 
Ну, сначала нужно подключится к серверу по SSH и прописать такую команду:

tar -zcvf имя_архива архивируемая_папка

Пример:

tar -zcvf logs.tar.gz logs/

В этом примере мы архивируем всё содержимое папки «logs/» в архив «logs.tar.gz».
«c» — значит, что создается новый архив;
«f» — посредством этого флага задается имя создаваемого архива;
«z» — архивация будет происходить посредством архиватора gzip;
«v» — в консоль будет выводиться информация о процессе архивации.

Наверное, этот метод архивации самый распространенный в unix-системах, но добиться похожего результата можно и другими способами. К примеру, можно воспользоваться zip-архиватором.

zip -r имя_архива архивируемая_папка

Пример:

zip -r logs.zip logs/

Эта команда архивирует всё содержимое папки «logs/» в архив «logs.zip».
Флаг «r» значит, что нужно искать файлы в папке рекурсивно, а иначе в архиве бы оказалась одна пустая папка.

Mysql Dump

Правильный mysqldump из консоли выглядет так:

mysqldump -u db_user_name -h db_server_host -P db_server_port --password="db_user_password" db_name | gzip>`date +%Y%m%d-%H%M`.sql.gz

Мне достаточно этой строчки. Кому нужно подробнее - брал тут.