Spec-Zone .ru
спецификации, руководства, описания, API
|
On Windows, you can run the server as a Windows service using a normal user account.
On Unix, the MySQL server mysqld can be started and run by any user. However, you should
avoid running the server as the Unix root
user for security reasons. To change mysqld
to run as a normal unprivileged Unix user user_name
, you must do the
following:
Stop the server if it is running (use mysqladmin shutdown).
Change the database directories and files so that user_name
has privileges to read and write files in them (you might need to do this as the Unix root
user):
shell> chown -R user_name
/path/to/mysql/datadir
If you do not do this, the server will not be able to access databases or tables when it runs as user_name
.
If directories or files within the MySQL data directory are symbolic links, chown
-R
might not follow symbolic links for you. If it does not, you will also need to follow
those links and change the directories and files they point to.
Start the server as user user_name
.
Another alternative is to start mysqld as the Unix root
user and use the --user=
option. mysqld starts up, then switches to run as the Unix
user user_name
user_name
before accepting any connections.
To start the server as the given user automatically at system startup time, specify
the user name by adding a user
option to the [mysqld]
group of the /etc/my.cnf
option
file or the my.cnf
option file in the server's data directory. For
example:
[mysqld]user=user_name
If your Unix machine itself is not secured, you should assign passwords to the MySQL root
accounts in the grant tables. Otherwise, any user with a login account on that
machine can run the mysql client with a --user=root
option and perform any operation. (It is a good idea to assign
passwords to MySQL accounts in any case, but especially so when other login accounts exist on the server host.)
See Section
2.10, "Postinstallation Setup and Testing".