Инструменты пользователя

Инструменты сайта


mysql

MySQL

MySQL 5.7 и политика паролей

В MySQL 5.7 из официального репозитория Oracle был добавлен какой-то «вредный»1) плагин для валидации паролей. Для просмотра текущих политик:

> use mysql;
> SHOW VARIABLES LIKE 'validate_password%';

Для управления этими самыми настройками:

> use mysql;
> SET GLOBAL validate_password_length = 6;
> SET GLOBAL validate_password_policy = 'LOW';
> SET GLOBAL validate_password_mixed_case_count = 0;
> SET GLOBAL validate_password_special_char_count = 0;

В отдельных случаях методика может оказаться малоэффективной (либо пароли менять приходится часто). В таком случае достаточно выполнить команду:
Внимание! С помощью данной команды подключаемый модуль будет удалён.

> use mysql;
> uninstall plugin validate_password;

Вернуть плагин назад:

> use mysql;
> INSTALL PLUGIN validate_password SONAME 'validate_password.so';

Конвертация в UTF-8

добавлю свою памятку для случаев когда нужна конвертация в utf8

Конвертировать базу в UTF8

Действие первое — сделать дамп базы с помощью утилиты «mysqldump», команда выглядит примерно вот так:
mysqldump -u user -p --default-character-set=latin1 --skip-set-charset dbname > dbname.sql

Действие второе — заменить стандартные кодировки таблиц:
sed -r 's/latin1/utf8/g' dbname.sql > dbname_utf.sql

Действие третье — воссоздать базу данных с новой дефольной кодировкой:
mysql -u user -p --execute="DROP DATABASE dbname; CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;"

Действие четвёрное — залить в базу все данные:
mysql -u user -p --default-character-set=utf8 dbname < dbname_utf.sql

Вот, собственно и всё. Правда есть ещё одна очень важная мелочь — указывать стандартную кодировку для отдачи данных для каждого нового соединения с СУБД, делается это следующим SQL запросом:
SET NAMES 'utf8' COLLATE 'utf8_general_ci'

+ может появиться ошибка
ERROR 1071 (42000) at line 5503: Specified key was too long; max key length is 1000 bytes
для этого надо отредактировать в create table создание индекса
наример `syntax`(256) -> `syntax`(70)
тут размер в символах а не в байтах
1) в кавычках, разумеется
mysql.txt · Последние изменения: 2017/03/07 16:11 — Alex