在 Windows 上,您可以使用普通用户帐户将服务器作为 Windows 服务运行。
在 Linux 上,对于使用 MySQL 存储库或 RPM 软件包执行的安装,MySQL 服务器 mysqld 应由本地 mysql
操作系统用户启动。作为 MySQL 存储库的一部分包含的初始化脚本不支持由其他操作系统用户启动。
在 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
身份运行,然后再接受任何连接。要在系统启动时自动以给定用户身份启动服务器,请通过向
/etc/my.cnf
选项文件或服务器数据目录中的my.cnf
选项文件的[mysqld]
组添加user
选项来指定用户名。例如[mysqld] user=user_name
如果您的 Unix 机器本身不安全,则应在授权表中为 MySQL root
帐户分配密码。否则,该机器上拥有登录帐户的任何用户都可以使用 mysql 客户端和 --user=root
选项运行,并执行任何操作。(无论如何,为 MySQL 帐户分配密码都是一个好主意,尤其是当服务器主机上存在其他登录帐户时。)请参阅第 2.9.4 节“保护初始 MySQL 帐户”。