MySQL в разрезе Никита Кислицин Спецвыпуск: Хакер, номер #052, стр. 052-036-3 mysql:*:44: Затем при помощи утилиты adduser я добавил нового пользователя MySQL, после чего можно было уже переходить непосредственно к установке "мускла". В каталоге с MySQL легко заметить папку scripts. Для ее установки запускаем сценарий scripts/mysql_install_db с параметром --user=mysql, указывающим, под каким пользователем нужно работать программе. Когда сценарий создаст все нужные системные таблицы, идем в корневой каталог с MySQL и назначаем владельцев самых важных папок. Действуем согласно мануалу: chown -R root . chown -R mysql data chgrp -R mysql . В общем-то, все, Амиго! Осталось запустить демона, чтобы он спокойненько работал в фоне. Напрямую выполнять файл mysqld по ряду причин не рекомендуется. Запускать сервер баз данных лучше всего через своеобразную оболочку mysqld_safe, передавая в качестве параметра уже знакомый флаг –-user, вот так: bin/mysqld_safe --user=mysql& После этого сервер запустится и отправится жить в background, поскольку мы указали это добавив к имени бинарника знак амперсанта. В принципе, после этого сервер уже вполне работоспособен и с ним можно адекватно общаться. Чтобы убедиться в этом, запустим утилиту /usr/local/mysql/bin/mysql. Поскольку мы еще не установили пароль для суперпользователя root, ничего дополнительно вводить не понадобится. Согласись, что это не самый лучший подход – держать службу с паролем по умолчанию. Поэтому сейчас мы его поменяем, а заодно внесем некоторые изменения в саму базу данных. Простенький тюнинг Чтобы поменять пароль для суперпользователя, нужно выполнить следующий запрос: mysql> set password for root@localhost=password("KitEfxcs"); Затем сделаем активной системную базу данных MySQL, в которой хранится вся информация о системных структурах, в том числе - о пользователях MySQL: mysql> use mysql; Теперь давай удалим всех пользователей, а пощадим только рута (установочный скрипт насоздавал кучу ненужного и левого): mysql> delete from user where not user="root"; Что еще полезного можно сделать? Поменяем имя суперпользователя, чтобы любители брутфорсить пароль для рутовой записи пошли лесом: mysql> update user set user="nikitoz" where user="root"; После этого, чтобы изменения в таблице users были приняты, выполняем команду flush privileges: mysql> flush privileges; mysql> quit Тебя уже мучают несколько вопросов, если ты до этого не работал с MySQL. А самый главный из них: "Неужели информация о пользователях хранится в обычной таблице?" Да, это так! Если быть точнее, в таблице user базы MySQL. Соответственно, внося изменения в эту таблицу, можно менять пользователям пароли, имена и прочие параметры. Однако тут следует иметь в виду, что пароли, разумеется, хранятся не в открытом виде, а криптуются. Поэтому перед изменением пароль пользователя криптуется с помощью стандартной в MySQL функции password вот так: |