在 Windows 上,您可以使用普通用户帐户以 Windows 服务的形式运行服务器。
在 Linux 上,对于使用 MySQL 存储库或 RPM 软件包进行的安装,MySQL 服务器 mysqld 应该由本地 mysql
操作系统用户启动。使用其他操作系统用户启动不受 MySQL 存储库中的 init 脚本支持。
在 Unix(或使用 tar.gz
软件包的 Linux)上,MySQL 服务器 mysqld 可以由任何用户启动和运行。但是,出于安全原因,您应该避免以 Unix root
用户身份运行服务器。要将 mysqld 更改为以普通 Unix 用户 user_name
身份运行,您必须执行以下操作:
-
停止服务器(使用 mysqladmin shutdown)。
-
将数据库目录和文件更改为
user_name
拥有读取和写入权限(您可能需要以 Unixroot
用户身份执行此操作):$> chown -R user_name /path/to/mysql/datadir
如果不这样做,服务器将无法访问数据库或表格当它以
user_name
身份运行。如果 MySQL 数据目录中的目录或文件是符号链接,
chown -R
可能不会遵循符号链接。如果它不这样做,您还必须遵循这些链接并更改它们所指向的目录和文件。 -
以用户
user_name
身份启动服务器。另一个替代方案是以 Unixroot
用户身份启动 mysqld 并使用--user=
选项。mysqld 启动,然后在接受任何连接之前切换到 Unix 用户user_name
user_name
身份。 -
要在系统启动时自动以指定用户身份启动服务器,请在
[mysqld]
组的/etc/my.cnf
选项文件或服务器数据目录中的my.cnf
选项文件中添加一个user
选项。例如:[mysqld] user=user_name
如果您的 Unix 机器本身不安全,您应该为 MySQL root
帐户在授予权表中分配密码。否则,任何拥有该机器登录帐户的用户都可以使用 mysql 客户端带有 --user=root
选项执行任何操作。(无论如何,分配密码给 MySQL 帐户都是一个好主意,特别是在服务器主机上存在其他登录帐户时。)请参阅 第 2.9.4 节,“保护初始 MySQL 帐户”。