Percona server — это сборка MySQL (от Петра Зайцева и ко) с включенным по умолчанию XtraDB storage engine. Отличается от MySQL+InnoDB plugin лучшей производительностью/масштабируемостью, особенно на современных многоядерных серверах. Также улучшена функциональность — больше всякой полезной для оптимизации статистики и пр. Собирается в вариантах базирующихся на MySQL 5.0 и 5.1. Полностью совместим с таблицами innodb, то есть можно переходить от innodb к xtradb и обратно без проблем (если не использовать некоторые специфичные для xtradb функции, типа меньшего размера страницы).
Установка на Centos 7
1
|
yum install href=»http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
|
1
|
yum install Percona-Server-server-57
|
на этом установка завершена
далее настройка
1
|
service mysql start
|
При старте демона в логах создаеться пароль от root@localhost
1
2 |
[root@node2 log]# cat mysqld.log | grep generated
2017-10-02T08:39:51.848675Z 1 [Note] A temporary password is generated for root@localhost: 1e-gn,d9.sfA |
меняем пароль и настраиваем через команду
1
|
mysql_secure_installation
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
[root@node2 log]# mysql_secure_installation Securing the MySQL server deployment. Enter password for user root: The existing password for the user account root has expired. Please set a new password. New password: Re-enter new password: Estimated strength of the password: 100 … skipping. Remove anonymous users? (Press y|Y for Yes, any other key for No) : <strong>y</strong> Normally, root should only be allowed to connect from Disallow root login remotely? (Press y|Y for Yes, any other key for No) : <strong>y</strong> By default, MySQL comes with a database named ‘test’ that Remove test database and access to it? (Press y|Y for Yes, any other key for No) : <strong>y</strong> — Removing privileges on test database… Reloading the privilege tables will ensure that all changes Reload privilege tables now? (Press y|Y for Yes, any other key for No) : <strong>y</strong> All done! |
Теперь немного о password policy
При создании пользователя, для него нужно будет придумывать сложный пароль, но все же требования к паролю можно уменьшить.
1
2 3 4 5 6 7 8 9 10 11 12 13 |
mysql> SHOW VARIABLES LIKE ‘validate_password%’;
+—————————————+———+ | Variable_name | Value | +—————————————+———+ | validate_password_check_user_name | OFF | | validate_password_dictionary_file | | | validate_password_length | 8 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | MEDIUM | | validate_password_special_char_count | 1 | +—————————————+———+ 7 rows in set (0.01 sec) |
Для начала я уменьшу значение
1
|
validate_password_policy
|
1
2 |
mysql> SET GLOBAL validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec) |
теперь уже относительно того что я хочу в пароле, все же требования есть требования, да они для безопасности. но все же иногда не очень удобно.
для примера я сменю только одно значение
1
2 |
mysql>SET GLOBAL validate_password_special_char_count=0;
Query OK, 0 rows affected (0.00 sec) |
после всех изменений правил политики проверяю:
1
2 3 4 5 6 7 8 9 10 11 12 13 |
mysql> SHOW VARIABLES LIKE ‘validate_password%’;
+—————————————+——-+ | Variable_name | Value | +—————————————+——-+ | validate_password_check_user_name | OFF | | validate_password_dictionary_file | | | validate_password_length | 8 | | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | LOW | | validate_password_special_char_count | 0 | +—————————————+——-+ 7 rows in set (0.01 sec) |
мне этого достаточно.
Управление пользователями и базами
Создание пользователя
1
|
CREATE USER ‘user’@’localhost’ IDENTIFIED BY ‘password’;
|
Удаление пользователя
1
|
DROP USER ‘user’@‘localhost’;
|
Список пользователей
1
|
SELECT User,Host FROM mysql.user;
|
Список прав у пользователя user@localhost
1
|
SHOW GRANTS FOR user@localhost;
|
Добавим выбранные привилегии для всех таблиц БД basename пользователю ‘user’@’localhost’
1
|
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX ON basename.* TO ‘user’@’localhost’;
|
Добавим все привилегии для всех таблиц БД basename пользователю ‘user’@’localhost’
1
|
GRANT ALL PRIVILEGES ON basename.* TO ‘user’@’localhost’;
|
Удаление прав пользователя ‘user’@’localhost’ для БД basename:
REVOKE ALL ON basename.* FROM ‘user’@’localhost’;
Перезагрузка привилегий
1
|
FLUSH PRIVILEGES;
|
Смена пароля пользователя
1
2 3 |
USE mysql;
UPDATE user SET password=PASSWORD(«НОВЫЙ_ПАРОЛЬ») where User=’user’; FLUSH PRIVILEGES; |
Управление базой данных
Создание базы данных
1
|
mysql>CREATE DATABASE basename COLLATE utf8_general_ci;
|
Создание базы с консоли сервера
1
|
mysqladmin -u root -p create basename
|
Удаления базы данных из консоли сервера
1
|
mysqladmin -u root -p drop basename
|
Удаление базы с консоли mysql
1
|
DROP DATABASE basename;
|