Сервер mysqld может
запускаться и работать от любого
пользователя. Чтобы настроить
mysqld для работы под
Unix-пользователем user_name,
необходимо выполнить следующие
действия:
Если сервер работает, остановите
его (используйте mysqladmin
shutdown).
Измените каталоги и файлы баз
данных так, чтобы user_name
имел привилегии для чтения и
записи файлов в этих каталогах
(возможно, это нужно будет делать
из Unix-аккаунта root):
shell> chown -R user_name /path/to/mysql/datadir
Если среди каталогов или файлов
в каталоге данных MySQL
присутствуют символические
ссылки, то нужно будет также
перейти по этим ссылкам и
изменить каталоги и файлы, на
которые они указывают. chown
-R может не отработать
символических ссылок.
Запустите сервер из аккаунта
user_name или, если у вас
MySQL 3.22 и выше, запустите
mysqld из Unix-аккаунта
root и используйте опцию
--user=user_name. mysqld
переключится на выполнение в
контексте Unix-пользователя
user_name до того, как
начнет обслуживать запросы на
соединение.
Чтобы запускать сервер от имени
данного пользователя
автоматически в ходе загрузки
системы, добавьте строку user,
указывающую имя пользователя, в
группе [mysqld] файла
опций /etc/my.cnf или
файла опций my.cnf из
каталога данных сервера.
Например:
[mysqld] user=user_name
К этому моменту процесс
mysqld должен без помех
работать под Unix-пользователем
user_name. Однако содержимое
таблиц привилегий не изменяется.
По умолчанию (сразу после
выполнения скрипта инсталляции
таблиц привилегий
mysql_install_db)
MySQL-пользователь root
является единственным
пользователем с правами на доступ
к базе данных mysql, а также
на создание и удаление баз данных.
Если вы не меняли этих полномочий,
они по-прежнему действительны. То,
что вы вошли в систему как
Unix-пользователь, отличный от
root, не может вам помешать
получить доступ к MySQL в качестве
MySQL-пользователя root; просто задайте
клиентской программе опцию -u
root.
Отметим, что работа с MySQL в качестве
MySQL-пользователя root
посредством указания -u
root в командной строке
не имеет ничего
общего с выполнением MySQL под
Unix-пользователем root, или
вообще под каким бы то ни было
Unix-пользователем. Привилегии
доступа и имена пользователей MySQL
никак не связаны с именами
Unix-пользователей. Единственная
связь с именами Unix-пользователей
заключается в том, что если при
запуске клиентской программы не
задана опция -u, то клиент
попытается соединиться, используя
в качестве имени MySQL-пользователя
имя Unix-аккаунта.
Если Unix-сервер не слишком хорошо
защищен или не нуждается в
повышенных мерах безопасности,
следует как минимум установить в
таблицах привилегий пароль для
MySQL-пользователя root. В
противном случае любой
пользователь с аккаунтом на данной
машине сможет запустить mysql -u
root db_name и делать в MySQL все, что
ему заблагорассудится.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
