A. 问题和常见错误 / A.3. 与安装有关的事宜 / A.3.2. 如何以普通用户身份运行MySQL

Windows平台上,能够使用普通用户账户以Windows服务方式运行服务器。

Unix平台上,不是任何用户都能启动并运行MySQL服务器mysqld。但是,处于安全方面的原因,应避免以Unix根用户身份运行服务器。要想更改mysqld,使之能以正常的无特权Unix用户user_name身份运行,必须采取下述步骤:

如果服务器正在运行,停止它(使用mysqladmin shutdown)。

更改数据库目录和文件,允许user_name读写其中的文件(可能需要以Unix根用户身份完成这类设置):

shell> chown -R user_name /path/to/mysql/datadir

如果未这样做,当以user_name身份运行时,服务器无法访问数据库或表。

如果MySQL数据目录下的目录或文件采用的是符号链接,还需跟踪这些链接,并更改它们指向的目录和文件。chown –R可帮助你跟踪符号链接。

user_name身份启动服务器。如果你正在使用MySQL 3.22或更高版本,另一种可选方式是,以Unix根用户身份启动mysqld,并使用--user=user_name选项。mysqld启动,然后在接受任何连接前,切换至Unix用户user_name并以该用户身份运行。

要想在系统启动时自动以给定的用户身份启动服务器,可在服务器数据目录下的/etc/my.cnf选项文件或my.cnf选项文件的[mysqld]组中,通过增加用户选项来指定用户名。。例如:

[mysqld]
user=user_name

如果你的Unix机器本身并不安全,应在授权表中为MySQL根账户指定密码。如不然,任何在该机器上具有登录账户的用户都能使用“--user=root”选项运行mysql客户端,并执行任何操作。在任何情况下均应为MySQL账户指定密码,这是个好主意,尤其是在服务器主机上存在其他登录账户时,更是如此。请参见2.9节,“安装后的设置和测试”