user='root';
Как вы заметили, это обычный SQL-запрос, обновляющий поле Password таблицы user для пользователя root. При вводе запроса обратите внимание на регистр названий полей: сервер MySQL различает прописные и строчные буквы!
Теперь нужно, чтобы MySQL принял изменения. Для этого выполните еще один запрос SQL:
FLUSH PRIVILEGES;
Завершите сеанс работы с MySQL-монитором, введя команду q (quit). В следующий раз зарегистрироваться на сервере без пароля вы уже не сможете. Теперь нужно запускать MySQL-монитор следующей командой:
$ mysql -u root -p mysql
Ключ -p запросит при регистрации пароль. Имейте в виду: забытый пароль нельзя восстановить. Единственный выход из этого положения — удалить каталог /var/lib/mysql/mysql и создать базу mysql заново командой mysql_install_db.
Для принятия изменений можно также использовать программу mysqladmin с аргументом reload. Вызвать программу можно так:
$ mysqladmin -p reload
Параметр -p вам обязательно нужно использовать, так как вы только что установили пароль для пользователя root.
Установите права доступа к сценарию /etc/rc.d/init.d/mysqld:
# chmod +x /etc/rc.d/init.d/mysqld
Теперь можете перезапустить сервер командой
# /etc/rc.d/init.d/mysqld restart
17.1.2. Автозапуск сервера MySQL
Последнее, что вам осталось сделать — это добавить сервер MySQL в автозапуск. С этой целью перейдите в каталог /etc/rc.d/rc3.d и создайте символическую ссылку на файл /etc/rc.d/init.d/mysql:
# ln -s S14mysql /etc/rc.d/init.d/mysql
Префикс S14 определяет очередность запуска сервера mysqld. В данном случае он запустится после сервисов network (S10) и portmap (S11). У вас эти значения могут быть другими.
17.1.3. Пользователи сервера MySQL и их права
После установки сервера нужно завести пользователей, которые имеют право работать с сервером баз данных. Введите следующий запрос:
GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY
'пароль' WITH GRANT OPTION;
Введенный вами запрос создаст пользователя admin, который будет иметь право выполнять любые операции со всеми базами данных. Этот пользователь будет иметь право подключаться к серверу с компьютера localhost, используя пароль.
Маска *.* определяет, к каким базам данных и таблицам имеет право подключаться тот или иной пользователь. Первая звездочка определяет базу, а вторая — таблицу. Если вам нужно, чтобы пользователь admin имел право подключаться с любого узла, используйте знак процента вместо имени компьютера:
GRANT ALL PRIVILEGES ON *.* TO admin@'%' IDENTIFIED BY
'пароль' WITH GRANT OPTION;
Вместо всех полномочий вы можете определить, какие действия может выполнять с базой тот или иной пользователь. Если вы являетесь хостинг-провайдером и предоставляете доступ пользователю к его базе данных, то вы можете использовать следующий запрос:
GRANT CREATE,DROP,SELECT,INSERT,UPDATE,DELETE,INDEX ON
user.* TO user@% IDENTIFIED BY 'пароль';
Этот запрос позволяет пользователю user выполнять все операции с его базой данных.
Полный список полномочий представлен в таблице 17.1.
Полномочия пользователей сервера MySQL Таблица 17.1
| Полномочия | Описание |
|---|---|
| SELECT, INSERT, UPDATE, DELETE | Право просматривать, добавлять, модифицировать, удалять данные в таблицах базы данных |
| INDEX | Право производить операции с индексами таблиц |
| REFERENCES | Право работать со ссылками в базах данных и таблицах |
| CREATE, DROP | Право создавать и удалять таблицы и базы данных |
| GRANT, ALTER | Право определять полномочия |
| RELOAD, SHUTDOWN, PROCESS | Право перезагружать, останавливать сервер и просматривать все процессы (подключения) |
Если запрос GRANT у вас не работает, то вы можете внести пользователя непосредственно в таблицу user базы данных mysql. Структура таблицы user выглядит следующим образом:
Host User Password Select_priv Insert_priv Update_priv
Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv
Process_priv File_priv
Поля Host, User, Password — это, соответственно, узел, из которого пользователь может получить доступ, имя и пароль пользователя. Все
