Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

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

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

在 Windows 上,您可以使用普通用户帐户以 Windows 服务的形式运行服务器。

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

在 Unix(或使用 tar.gz 软件包的 Linux)上,MySQL 服务器 mysqld 可以由任何用户启动和运行。但是,出于安全原因,您应该避免以 Unix root 用户身份运行服务器。要将 mysqld 更改为以普通 Unix 用户 user_name 身份运行,您必须执行以下操作:

  1. 停止服务器(使用 mysqladmin shutdown)。

  2. 将数据库目录和文件更改为 user_name 拥有读取和写入权限(您可能需要以 Unix root 用户身份执行此操作):

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

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

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

  3. 以用户 user_name 身份启动服务器。另一个替代方案是以 Unix root 用户身份启动 mysqld 并使用 --user=user_name 选项。mysqld 启动,然后在接受任何连接之前切换到 Unix 用户 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 帐户”