以用户身份运行独立的 MySQL 服务器

以用户身份运行独立的 MySQL 服务器

我想在一台我没有或只有很少权限的机器上运行 MySQL 服务器,因此我希望所有数据和所有套接字都包含在一个目录中,而且我显然希望以用户身份而不是服务身份运行它。这一切都在 Linux 上。

我该如何做呢?

答案1

如果你用 Google 搜索,就会找到大量有关如何执行此操作的信息。(或访问该man页面。)

来自 MySQL 在线文档页面

在 Unix 上,任何用户都可以启动和运行 MySQL 服务器 mysqld。但是,出于安全原因,您应避免以 Unix 根用户身份运行服务器。要更改为以mysqld普通的非特权 Unix 用户身份运行user_name,您必须执行以下操作:

  1. 如果服务器正在运行,请停止它(使用mysqladmin shutdown)。
  2. 更改数据库目录和文件,以便user_name有权读取和写入其中的文件(您可能需要以 Unix 根用户身份执行此操作):shell> chown -R user_name /path/to/mysql/datadir如果不这样做,服务器在运行时将无法访问数据库或表。user_name.如果 MySQL 数据目录中的目录或文件是符号链接,chown -R则可能不会为您遵循符号链接。如果没有,您还需要遵循这些链接并更改它们指向的目录和文件。
  3. 以用户身份启动服务器user_name.另一种选择是以 Unix 根用户身份启动 mysqld 并使用该--user=user_name选项。mysqld启动,然后user_name在接受任何连接之前切换到以 Unix 用户身份运行。
  4. 要在系统启动时自动以给定用户身份启动服务器,请通过在选项文件或服务器数据目录中的选项文件中添加用户选项来指定用户名[mysqld] group/etc/my.cnf例如my.cnf

[mysqld]

用户=用户名

如果您的 Unix 计算机本身不安全,则应在授权表中为 MySQL 根帐户分配密码。否则,任何在该计算机上拥有登录帐户的用户都可以使用选项运行 mysql 客户端--user=root并执行任何操作。(在任何情况下,为 MySQL 帐户分配密码都是一个好主意,但当服务器主机上存在其他登录帐户时尤其如此。)

相关内容