### 6.1.5 如何以普通用户身份运行 MySQL

[](<>)[](<>)

在 Windows 上，您可以使用普通用户帐户将服务器作为 Windows 服务运行。

在 Linux 上，对于使用 MySQL 存储库或 RPM 包执行的安装，MySQL 服务器[**mysqld**](mysqld.html)应该由本地启动`mysql`操作系统用户。包含在 MySQL 存储库中的 init 脚本不支持由另一个操作系统用户启动。

在 Unix 上（或 Linux 用于安装使用`压缩包`包），MySQL服务器[**mysqld**](mysqld.html)可以由任何用户启动和运行。但是，您应该避免将服务器作为 Unix 运行`根`用户出于安全原因。改变[**mysqld**](mysqld.html)以普通的非特权 Unix 用户身份运行*`用户名`*，您必须执行以下操作：

1.  如果服务器正在运行，请停止它（使用[**mysqladmin 关闭**](mysqladmin.html)）。

2.  更改数据库目录和文件，以便*`用户名`*有权在其中读取和写入文件（您可能需要像 Unix`根`用户）：

    ```
    $> chown -R user_name /path/to/mysql/datadir
    ```

    如果不这样做，服务器在运行时无法访问数据库或表*`用户名`*.

    如果 MySQL 数据目录中的目录或文件是符号链接，`chown -R`可能不会为您遵循符号链接。如果没有，您还必须遵循这些链接并更改它们指向的目录和文件。

3.  以用户身份启动服务器*`用户名`*.另一种选择是开始[**mysqld**](mysqld.html)作为 Unix`根`用户并使用[`--用户=*`用户名`*`](server-options.html#option_mysqld_user)选项。[**mysqld**](mysqld.html)启动，然后切换为以 Unix 用户身份运行*`用户名`*在接受任何连接之前。

4.  要在系统启动时以给定用户身份自动启动服务器，请通过添加`用户`选项`[mysqld]`组的`/etc/my.cnf`选项文件或`我的.cnf`服务器数据目录中的选项文件。例如：

    ```
    [mysqld]
    user=user_name
    ```

    如果你的 Unix 机器本身不安全，你应该给 MySQL 分配密码`根`授予表中的帐户。否则，在该机器上拥有登录帐户的任何用户都可以运行[**mysql**](mysql.html)客户[`--user=root`](mysql-command-options.html#option_mysql_user)选项并执行任何操作。（在任何情况下为 MySQL 帐户分配密码都是一个好主意，尤其是当服务器主机上存在其他登录帐户时。）请参阅[第 2.10.4 节，“保护初始 MySQL 帐户”](default-privileges.html).
