Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  How to Run MySQL as a Normal User

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

在 Windows 上,您可以使用普通用户账户运行服务器。

在 Linux 上,使用 MySQL 仓库或 RPM 包安装的 MySQL 服务器 mysqld 应该由本地 mysql 操作系统用户启动。使用其他操作系统用户启动不受支持的 init 脚本。

在 Unix (或 Linux,使用 tar.gz 包安装)中,MySQL 服务器 mysqld 可以由任何用户启动,但是为了安全原因,不要以 Unix root 用户身份运行。要将 mysqld 更改为以普通非特权 Unix 用户 user_name 运行,需要执行以下操作:

  1. 如果服务器正在运行(使用 mysqladmin shutdown)。

  2. 将数据库目录和文件更改为 user_name 可以读写文件(您可能需要以 Unix root 用户身份执行):

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

    如果不这样做,服务器在运行时无法访问数据库或表。

    如果 MySQL 数据目录中的目录或文件是符号链接,chown -R 可能不会自动跟随符号链接。如果不这样做,你必须手动跟随这些链接,并将它们指向的目录和文件更改。

  3. 以用户 user_name 启动服务器。另一个选择是,以 Unix root 用户启动mysqld,然后使用--user=user_name 选项。mysqld 启动后,切换到以用户 user_name 运行,直到接受任何连接。

  4. 要在系统启动时自动以给定的用户启动服务器,请将用户名称添加到 [mysqld] 组中的 /etc/my.cnf 选项文件或服务器数据目录中的 my.cnf 选项文件的 user 选项。例如:

    [mysqld]
    user=user_name

如果您的Unix机器本身不安全,您应该将MySQL root 账户的密码在授权表中分配。否则,任何拥有该机器登录账户的用户都可以使用mysql 客户端,带有--user=root 选项,并执行任何操作。 (总之,应该将MySQL账户的密码分配,尤其是在服务器主机上存在其他登录账户时。)请参阅第2.9.4节,“初始MySQL账户安全”