在 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 帐户”。