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